什么时候我需要使用process.nextTick在node.js中的最佳实践异步函数

When do I need to use process.nextTick in node.js for best practice async functions?

本文关键字:js 最佳 函数 异步 node nextTick process 什么时候      更新时间:2023-09-26

所以我一直在想我是否需要在process.nextTick中包装需要时间的东西。

例如,假设有一个函数返回一个xml字符串转换为对象的承诺。

(我已经删除了require和其他琐碎的可读性。你知道这里发生了什么。

// Return a promise for a javascript object
function parseXml(xml) {
    var promise = q.defer();
    var parser = new x2je.Parser(function(result, error) {
        if (!error)
            promise.resolve(result);
        else
            promise.reject(error);
    });
    parser.parseString(xml);
    return promise.promise;
}

你看到一些人这样写函数:

// Return a promise for a javascript object
function parseXml(xml) {
    var promise = q.defer();
    process.nextTick(function(){
        var parser = new x2je.Parser(function(result, error) {
            if (!error)
                promise.resolve(result);
            else
                promise.reject(error);
        });
        parser.parseString(xml);
    });
    return promise.promise;
}

我什么时候需要使用process.nextTick进行最佳实践编码?

setTimeout(function(){//},0)也可以得到同样的结果;它只是把你的函数放在队列中,而不是堆栈中,主要是为了让你的代码不阻塞。

参考这些链接以获得更深入的理解

http://howtonode.org/understanding-process-next-tick

https://www.youtube.com/watch?v=8aGhZQkoFbQ