调用此承诺时事件循环被阻止

时间:2019-05-14 17:33:55

标签: node.js asynchronous canvas fs

当我调用以下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放在一边运行,并且它会节流直到完成此功能。

有没有一种方法或软件包可以跟踪同步呼叫?

0 个答案:

没有答案