node.js - 我应该使用 process.nextTick

标签 node.js asynchronous

我正在考虑何时使用 process.nextTick。下面我使用异步库来控制我的代码流,并想知道我是否应该在结束回调中调用 nextTick。

async.parallel([
    function (callback) {
        // do something
        callback(data);
    },
    function (callback) {
        // do something
        callback(data);        
    }
], 
// callback
function (data) {
    process.nextTick(function () {
        // do something
    });
});

最佳答案

在不确切知道您的“做某事”是什么的情况下,我看不出您在这种情况下需要使用 nextTick 的任何理由。当您有理由将函数的执行推迟到事件循环的下一次迭代时,您可以使用 nextTick。您可能想阅读 Understanding process.nextTick了解更多详情。

此外,请注意异步的并行任务完成回调采用参数err, data,因此您应该这样做:

async.parallel([
    function (callback) {
        // do something
        callback(null, data);
    },
    function (callback) {
        // do something
        callback(null, data);        
    }
], 
// callback
function (err, data) {
    if (err) throw err;
    // do something
});

主要区别在于,如果其中一个并行任务返回错误(调用 callback,第一个参数为真),则立即调用最终回调。

关于node.js - 我应该使用 process.nextTick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13940974/

相关文章:

javascript - 如何从异步调用返回响应?

node.js - 在 Node 集群上运行多个 Node 应用程序

node.js - 对于著名表面,从前端将数据导入 meteor 模板的推荐方法是什么?

mysql - 如何在NodeJS mysql中模拟SQL注入(inject)

java - 在 Play Framework 中插入批量数据的最佳方式是什么?

javascript - 将 Require.js 的异步属性与 Webix(客户端框架)一起使用?

ios - 如何从异步方法返回多个结果?

node.js - Passport JS 中的 req.isAuthenticated() 是如何实现的?

javascript - 无法在 nodeJS :TypeError: Cannot use 'in' operator to search for 'username' in fs 中对用户进行身份验证

ios - Swift优化嵌套异步调用