只有当承诺得到履行时,你如何执行?



如果某些函数未按要求执行,我正在使用承诺来强制 NodeJS 停止运行。目前,服务器会根据需要停止,但如果功能成功实现其承诺,我还想包含一个控制台日志。我正在使用 npm 'q' 模块。

工作代码

Q.all([
someFunction1(),
someOtherFunction('https://www.google.com', 'Google'),
someOtherFunction('https://www.facebook.com', 'Facebook'),
])
.catch(function (err){
console.log(err);
process.exit(1);
})

按如下所示添加 then 时,则在承诺完成之前执行 then,因此无论承诺是实现还是拒绝,都会执行控制台.log调用。

Q.all([
someFunction1(),
someOtherFunction('https://www.google.com', 'Google'),
someOtherFunction('https://www.facebook.com', 'Facebook'),
])
.then(console.log("No problem here"))
.catch(function (err){
console.log(err);
process.exit(1);
})

您正在就地调用console.log,因此无论承诺是成功还是失败,都会调用它。

将包含日志的函数作为语句传递给.then,并且只有在Q.all(...)成功时才会调用该函数:

.then(function () {
console.log("No problem here");
})

相关内容

  • 没有找到相关文章

最新更新