TypeScript - 在链式函数中传递参数
Posted
技术标签:
【中文标题】TypeScript - 在链式函数中传递参数【英文标题】:TypeScript - Passing parameter in chained function 【发布时间】:2022-01-17 11:37:25 【问题描述】:在 node.js 中,我使用来自 child_process
的 exec
调用脚本。
当处于关闭状态时,我想检查是否有任何错误,以便我可以返回它,但是我似乎无法在第二个函数 on()
中访问 error
。
谁能解释一下我如何传递它。
exec('myScript.sh',
(error: any, stdout: any, stderr: any) => ).on('close', () =>
console.log(error)
)
谢谢。
【问题讨论】:
【参考方案1】:您需要将其存储在回调函数之外。如果您查看 ES5 等效项:
exec("myScript.sh", function(error, stdout, stderr)
// Do nothing
).on("close", function()
// Cannot access error here
);
您可以看到error
的作用域对于exec
的第二个参数的匿名回调函数是本地的。您可以在 onclose 回调函数中访问它,方法是将其存储在该函数可访问的范围内,如下所示:
let execError = "";
exec("myScript.sh", function(error, stdout, stderr)
execError = error;
).on("close", function()
console.log(execError);
);
或者用你原来的符号(ES6):
let execError: any = "";
exec("myScript.sh", (error: any, stdout: any, stderr: any) =>
execError = error;
).on("close", () =>
console.log(execError);
);
【讨论】:
以上是关于TypeScript - 在链式函数中传递参数的主要内容,如果未能解决你的问题,请参考以下文章
如何将参数从 Dart 传递到用 Typescript 编写的 Cloud 函数,它还给了我错误代码 UNAUTHENTICATED