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