我有类似以下内容
var async = require(async)
function start () {
async.series(
[
function (callback) {
// do something
callback(null, "Done doing something")
return // EXIT start() NOT JUST THIS VIRTUAL FUNCTION
},
function (callback) {
// do something else if the first thing succeeded
callback(null, "Done doing something else")
}
],
function (err,result) {
if (err) {
console.log(err)
}
}
)
console.log("All done!")
}
// Start doing stuff
start()
是否可以根据包含的虚拟函数中的某些条件退出函数 start(),我在其中添加了注释“EXIT start() NOT JUST THIS VIRTUAL FUNCTION”
最佳答案
简而言之,是的,您可以提前退出任务系列。 async
使用error-first callbacks ,这是 Node.js 中的基本异步回调结构。有关使用 Node.js 进行异步开发的其他资源,请参阅这个很棒的 blog post来自 RisingStack。
来自async
的回调返回到当async.series
时调用的最终回调。如果提供则已完成,此回调是可选的。如果系列中的某个任务返回的回调的第一个参数(即错误参数)中的值不是 null
,则 series
将中断并返回到最终的回调处理程序。
async.series(
[
function (callback) {
// If some condition is met, exit series with an error
if (someCondition)
return callback('exit start', null);
return callback(null, 'Done doing something');
},
function (callback) {
if (someCondition)
return callback('error', null);
// do something else if the first thing succeeded
return callback(null, "Done doing something else")
}
],
function (err,result) {
// Handle error returned from a series callback if one occurred
if (err) {
console.log(err)
}
}
)
关于javascript - 在 NodeJS 中,如何从虚拟函数中退出父函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36435848/