当我调用以下promise时,某事正在阻塞节点中的事件循环。一切看起来都要做ASYNC,所以我不明白。
注意:为方便起见,我删除了不必要的代码部分。
function updateImage() {
return new Promise((resolve, reject) => {
fs.readFile('/*...*/ (err, imgSrc) {
Canvas.createCanvas(/*...*/);
for(/*...*/) {
g.fillStyle = palette[p.c];
g.fillRect(p.x, p.y, 1, 1);
}
fs.writeFile('/*...*/ (err) => {
DB.query("UPDATE /*...*/ function (e, r, f) {
resolve();
});
})/*...catch*/
})/*...catch*/
})/*...catch*/
})/*...catch*/
});
}
updateImage().then(() => { /*...*/
当我这样调用updateImage()时,它将阻止我的循环事件。 我在同一脚本中将套接字io放在一边运行,并且它会节流直到完成此功能。
有没有一种方法或软件包可以跟踪同步呼叫?