ここに私のサンプルコードがあります。中期の約束を解消する方法
Orchestratorは、最初に2つの入力を使用してワーカーを呼び出し、応答を取得すると、応答が満足できるかどうかを検証する必要があります。
満足できる場合は、発信者に戻ってください。
もう一度、同じ従業員を呼び出すか、若干異なる入力をして別の従業員になり、その流れに従います。ここで
、私のコードは、CB(呼び出しが)最初のワーカーコールの後、それがまた出て2番目に行くとエラーの「応答」など、未定義..です
私がチェックするために、余分な条件を追加することができます1回目の応答が満足できるかどうか、need2ndworkercall & & 2回目に検証(応答)して取り除く。しかし、この問題に対処する正しい方法は何か不思議です。フィードバックを感謝します。
function orchestrateSomething(input, cb){
doSomething(input.a, input.b)
.then(response=>{
if(validate(response)){
cb(buildResultObj(response));
}
else{
return doSomething(input.a)
}
})
.then(response=>{
if(validate(response)){
cb(buildResultObj(response));
}
else{
cb(null,{});
}
})
.catch(error=>cb(error));
}
あなたのwi:
そして、ここでは、二枚のデモですチェーンの一部を条件付きで実行したい場合は、直鎖ではなく、分岐を作成します。 "promise branch vs. chain"を検索すると、説明している記事(stackoverflow上の記事)が多数見つかります。 – jfriend00
[複数、シーケンシャルfetch()Promise](http://stackoverflow.com/questions/38034574/multiple-sequential-fetch-promise/)を参照してください。 – guest271314