asynqについて
asynqはES6 Generatorsを使用した非同期処理ライブラリです。 機能はほぼcoと同等となっていますが、 一部機能の違いがあり、また拡張が行われています。
coとの違いについて
- ジェネレータ関数に引数を渡すことができます
- yieldに非同期タスクを要求する際、Object型は使用できません(Arrayは対応しています)
- yieldにPromise、Array、Function、GeneratorFunction、Generator以外を渡した場合にエラーとはなりません
- yieldに上記以外を渡す場合用のコールバックを作成する機能があります
API
asynq(fn*|fn)
ジェネレータを使用した非同期処理を実行し結果を受け取るPromiseを返します。 最初の引数にはジェネレータ及びジェネレータ関数を使用することができます。 それ以外の場合はその値(関数の場合はその評価結果)を返すPromiseを返します。
以降の引数にはジェネレータ関数及び任意の関数用の引数を渡すことができます。
asynqの例
catch{ //エラー処理};
このコードを実行すると123が出力されます。
asynqの例(エラー)
catch{ //エラー処理 console;//=>foo};
このコードを実行するとエラーハンドラ(catch)でfooが出力されます。
asynq.callbackを使用した例
catch{ //エラー処理};
このコードを実行するとa,b,c,done,123と順に出力されます。