nodejs工作者线程有超时吗?

时间:2019-06-29 11:03:24

标签: javascript node.js worker-thread

我使用节点工作线程在其中运行setTimeout循环,但是我发现它未按预期运行。

工作线程中的代码仅运行约13次,并且会停止且没有错误。

// code in nodejs worker thread
const record = (taskName, count) => {
    console.log(`testrecord:${taskName}:${count}`);
    count++;
    clearTimeout(runningId);
    if (count < 10000) {
        runningId = setTimeout(() => {
            record(taskName, count);
        }, 1000);
    }
}

parentPort.on('message', async function (event) {
    const { taskName} = event;
    record(taskName, 0);
  }

// The console log result:

...
[ 'testrecord:threadtest_22:8' ]
[ 'testrecord:threadtest_22:9' ]
[ 'testrecord:threadtest_22:10' ]
[ 'testrecord:threadtest_22:11' ]
[ 'testrecord:threadtest_22:12' ]
[ 'testrecord:threadtest_22:13' ]

工作线程仅在setTimeout中运行代码13次。不是10000次。为什么?

0 个答案:

没有答案