Цикл событий заблокирован при вызове этого обещания - PullRequest
0 голосов
/ 14 мая 2019

Что-то блокирует мой цикл событий в узле, когда я вызываю следующее обещание.Все выглядит как 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, работающий в стороне от этого в том же сценарии, и он работает до тех пор, пока эта функция не будет выполнена.

Есть ли способ или пакет, позволяющий отслеживать синхронизирующие вызовы?

...