【发布时间】:2022-06-30 08:07:22
【问题描述】:
您好 Stackoverflow 用户,
许多像我这样的人都在寻找如何将额外的参数传递给回调函数。这些问题的标题相似,但实际上它们具有不同的挑战和许多解决方法。此外,分享实践以提高经验总是令人愉快的。
最近,我在我的 node js 项目中遇到了一个非常简单的挑战。我与之通信的其中一个 API 有一个同步工作的 SDK。而且我以前每次都传递回调函数(当您有相互依赖的请求并且需要在应用层内传输一些数据时,这很烦人)。
想象一下这样的计划付款流程,客户向服务器发送一个请求,其中包括所选计划和他的 ID。服务器 API 层收到请求数据后,会将其传递给第三方服务函数(.create(...))。第三方服务函数接收到一个带有2个参数function(err, plan_document)的回调。然后,回调应该通过请求中的 ID 将选定的计划逻辑应用到客户端。
** 我们需要将客户端和计划的数据传递给回调函数以应用逻辑。第三方服务向回调提供了一个 plan_document 参数,我们仍然需要以某种方式将客户端 id 从 API 层传递给服务。
代码将如下所示。
const create_plan_agreement = (req, res) => {
// some code
var client_id = req.auth.client_id;
third_party.plan_agreement.create({}, update_plan_agreement);
};
const update_plan_agreement = (err, plan_document, client_id) => {
/*
The third-party `third_party.plan_agreement.create` function passes the first
two parameters and somehow we need to add the client_id
*/
console.log('client plan activated');
active_client_plan(plan_document, client_id);
};
【问题讨论】:
标签: javascript node.js