javascript - 在 NodeJS 中,如何从虚拟函数中退出父函数

标签 javascript node.js node-async

我有类似以下内容

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/

相关文章:

javascript - async.series 和 javascript 变量

javascript - iframe 中的 location.hash 滚动父窗口

javascript - 如何在不移动父元素的情况下加载在特定位置显示 div 的页面

javascript - 如何计算输入的字符数及其操作?

node.js - 使用 npm 安装 less 时遇到问题

email - 通过 NodeJS 发送带有附件的邮件

node.js - 在 webdriverio 中执行异步函数

javascript - AngularJS 饼图不显示

node.js - 如何在gulp任务之间共享参数?

node.js - Async.series 中的 Nodejs Angularjs Mongoose 查询