Promise.resolve().then vs setImmediate vs nextTick

前端 未结 3 1957
旧时难觅i
旧时难觅i 2020-12-01 04:36

NodeJS 0.11 as well as io.js and the Node 0.12 branch all ship with native promises.

Native promises have a .then method which always executes on a future event loop

3条回答
  •  时光取名叫无心
    2020-12-01 05:11

    Using Promise.resolve().then has no advantages over nextTick. It runs on the same queue, but have slightly higher priority, that is, promise handler can prevent next tick callback from ever running, the opposite is not possible. This behaviour is an implementation detail and should not be relied on.

    Promise.resolve().then is obviously slower (a lot, I think), because it creates two promises which will be thrown away.

    You can find extensive implementation info here: https://github.com/joyent/node/pull/8325

    The most important part: Promise.resolve().then is like nextTick and not like setImmediate. Using it n place of setImmediate can change your code behaviour drastically.

提交回复
热议问题