функция слива asyn c .queue не сработает - PullRequest
0 голосов
/ 01 апреля 2020

У меня была реализация asyn c .queue в моем приложении node js, но функция queue.drain недавно вообще перестала работать.

Я подозревал, что проблема связана с утверждениями await, которые у меня есть внутри задачи функции, но я также могу воспроизвести проблему, используя пример на asyn c документы

const async = require('async')

var q = async.queue(function(task, callback) {
  console.log('hello ' + task.name);
  callback();
}, 1);

q.drain(function() {
  console.log('all items have been processed');
});

q.push({name: 'bar'});
q.push({name: 'foo'}, function(err) {
  console.log('finished processing foo');
});

Это выведет следующее на моей консоли, но не оператор стока. Так что я чего-то упускаю?

привет бар

привет foo

закончил обработку foo

1 Ответ

0 голосов
/ 01 апреля 2020

Интересно, что преобразование функции слива в функцию стрелки решило проблему.

q.drain = function () {
  console.log('all items have been processed');
}

q.drain(() => {
  console.log('all items have been processed');
}
...