+ JavaScript の質問用スレッド vol.119 +at TECH
+ JavaScript の質問用スレッド vol.119 + - 暇つぶし2ch791:デフォルトの名無しさん
16/05/13 08:45:01.29 1hqv3t07.net
フラグ持ち回しはしない方がいい、Promiseらしさが壊れるから。
そういう必要が出てきたらCancellable Promiseみたいなサブクラスを使う。
もしくはPromiseに頼りきらずawait/asyncを使ってフロー制御をするのもいいと思う。
代わりにジェネリックを使うとこんなイメージ。

mainScript = spawn( function* () {
 var v = yield sampleA();
 if ( v == null ) yield sampleB();
 yield sampleC();
 return v;
});

function spawn(gfn) {
return function () {
var gen = gfn.apply(this, arguments);
return new Promise(function (resolve, reject) {
function step(v) {
var r = gen.next(v);
Promise.resolve(r.value).then(r.done ? resolve : step).catch(reject);
}
step();
});
}
}


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch