首页 > 解决方案 > Promise 函数中的阻塞操作是否会阻塞 nodejs 中的事件循环?

问题描述

将阻塞操作包装在 Promise 中是否仍会阻塞事件循环?例如,如果我将一个阻塞系统调用包装在一个 Promise 中并在阻塞系统调用结束时返回一个 resolve(),它会保持事件循环运行吗?

let a = new Promise((resolve, reject) => {
    // run blocking synchronous function here
    resolve();
}).then() {
    // continue after promise solved
}

// running a periodic 'blinker'
setInterval(() => {
    console.log('another second has passed');
}, 1000)

如果阻止呼叫花费的时间比这更长,消息会每秒不断弹出吗?

标签: javascriptnode.jsasynchronousblockingevent-loop

解决方案


推荐阅读