Node.jsのasyncモジュールにqueueというメソッドがあり、簡単にqueueを使った直列処理を行うことができる。
caolan/async: Async utilities for node and the browser
実際に処理するものの定義は下記のようにcallbackを実行して完了を知らせる。
var q = async.queue(function(task, callback) {
console.log('hello ' + task.name);
callback();
}, 2);
このクロージャはasync/awaitを使うことも可能。ただ、その場合には引数のcallbackがなくなるので呼ぶとエラーになる。
結局、Promiseになるためいちいちcallbackを呼ぶ必要がなくなるということっぽい。なので先程の例だと下記のようになる。
var q = async.queue(async function(task) {
console.log('hello ' + task.name);
const err = getError(task)
if (err) {
return err
}
// 成功の場合はreturnも不要
}, 2);
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント