You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据动态变量名调用JavaScript异步函数?

重构动态异步函数调用,替换Switch Case

当然可以,你可以用对象映射的方式替代switch case,既能减少重复代码,也让后续扩展更方便。

优化后的实现如下:

const option = "create";

const create = async(req, res) => {
  // do create stuff
}

const update = async(req, res) => {
  // do update stuff
}

// 用对象建立选项与函数的映射关系
const actionHandlers = {
  create,
  update
  // 新增操作时,直接在这里添加对应的键值对即可
};

// 动态获取并执行对应函数
const handler = actionHandlers[option];
if (handler) {
  return await handler(req, res);
} else {
  return res.status(500).json({ message: "Unable to process your request" });
}

为什么这么做?

  • 减少重复代码:不用再写大量重复的case分支和函数调用语句,逻辑更简洁。
  • 扩展性更强:后续新增操作时,只需要定义新的异步函数,再在actionHandlers对象里补充对应的键值对,无需修改核心的调用逻辑,符合开闭原则。
  • 可读性更好:直接通过对象属性访问匹配函数,逻辑一目了然,比嵌套的switch case更易维护。

内容的提问来源于stack exchange,提问作者Geoff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 12:07:04