0
我使用異步庫來管理使用隊列對象的web worker中的異步請求。 但是當我運行的隊列對象kill命令它不會進入空閒狀態oposing該說的文檔:異步隊列在kill時不會空閒
殺:一個功能,消除漏回調並清空從隊列迫使其剩餘 任務閒置。用queue.kill()調用。
我想在一個任務中出現錯誤時停止隊列並殺死web worker。但是我發現,當我致電告訴我的工人經理殺死這名工人的消息時,殺人並未完成。相反,它無限地告訴我空閒是錯誤的。
我使用下面的代碼:
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;
}
}
};
的是,在異步的錯誤,還是有我的一個錯誤?