NodeJS 0.11 以及 io.js 和 Node 0.12 分支都带有原生承诺。
原生 Promise有一个.then
方法,它总是在未来的事件循环周期中执行。
到目前为止setImmediate
,自从我从 nextTick 切换以来,我一直在使用将事情排队到事件循环的下一次迭代:
setImmediate(deferThisToNextTick); // My NodeJS 0.10 code
process.nextTick(deferThisToNextTick); // My NodeJS 0.8 code
因为我们现在有了一种新的方法来做到这一点:
Promise.resolve().then(deferThisToNextTick);
我应该使用哪个?另外 -在事件循环之前或之后运行的代码是否Promise.resolve.then
表现得像setImmediate
或像nextTick
?