相关疑难解决方法(0)

setImmediate与nextTick

Node.js版本0.10今天发布并推出 setImmediate.该API的变化文档建议做递归时使用它nextTick调用.

MDN看起来它看起来非常相似process.nextTick.

nextTick应该何时使用,何时使用setImmediate

javascript node.js setimmediate

328
推荐指数
6
解决办法
9万
查看次数

Javascript背景循环

假设我们有一个loop.js文件:

longLoop().then(res => console.log('loop result processing started'))
console.log('read file started')
require('fs').readFile(__filename, () => console.log('file processing started'))
setTimeout(() => console.log('timer fires'), 500)

async function longLoop () {
  console.log('loop started')
  let res = 0
  for (let i = 0; i < 1e7; i++) {
    res += Math.sin(i) // arbitrary computation heavy operation
    if (i % 1e5 === 0) await null /* solution: await new Promise(resolve => setImmediate(resolve)) */
  }
  console.log('loop finished')
  return res
}
Run Code Online (Sandbox Code Playgroud)

如果ran(node loop.js)输出:

loop started …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous event-loop node.js background-task

5
推荐指数
1
解决办法
761
查看次数