Я использую асинхронную библиотеку для управления моими асинхронными запросами у веб-рабочего с использованием объекта очереди. Но когда я запускаю очередь объектов команды не вдаваться в режиме простоя oposing к документации, которая говорит убить:async queue не запускается при запуске
убийства: функция, которая удаляет обратный вызов сливного и опустошает оставшиеся задачи из очереди форсирования его простаивать. Вызов с queue.kill().
Я хочу остановить очередь и убить веб-работника, если в одной задаче есть ошибка. Но я узнал, что убийство не завершено, когда я вызываю сообщение, которое говорит моему менеджеру-менеджеру убить этого работника. Вместо этого он бесконечно говорит мне, что простаивание ложно.
Я использую следующий код:
var q = async.queue(function(task, callback) {
FileReader.readBlock(task.file, task.offset, task.blockSize)
.then(function(block) {
return sendBlock(task.uuid, block, task.blockNumber);
})
.then(function(result) {
callback(null, result);
}).catch(function(error) {
callback(error);
});
}, 8);
q.drain = function() {
console.log('All Tasks finished successfully.');
};
q.error = function(error, task) {
this.kill();
while(true) {
if(this.idle()) {
self.postMessage({
type: 'error',
msg: 'A task failed. Upload is killed.'
});
break;
}
}
};
является то, что ошибка в асинхронном или есть ошибка с моей стороны?