如果某些函数未按要求执行,我正在使用承诺来强制 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");
})