変数が設定されている場合に何かをする必要がある単純な if else シナリオがあります。それ以外の場合は、else 部分で実行します。
if(flag) {
doSomething();
}
doNextThing(someParam);
フラグが設定されている場合は、doSomething() と doNextThing() を実行する必要があります
doSomething と doNextThing の両方が promise を返します。これを実装する最良の方法は何ですか?
現在、私のコードは次のようになります。
if(flag) {
doSomething().then(doNextThing);
}
else doNextThing(someParam);
よりクリーンなコード セグメントで 2 つをエレガントに組み合わせる最良の方法は何ですか?
私は試した:
var somePromise = new Promise(function(resolve, reject){
if(flag)
doSomething.then(resolve(result));
else resolve();
})
return somePromise.then(doNextThing(resolvedValue))
しかし、これは機能しません。約束 doSomething は決して解決されず、コードはすぐに返されるようです。また、次のような上記のいくつかのバリエーションを試しました。
var somePromise = new Promise(function(resolve, reject){
if(flag)
doSomething.then(resolve);
else resolve();
})
と:
var somePromise = new Promise(function(resolve, reject){
if(flag)
doSomething.then(function(result){
resolve(result);
}.bind(this));
else resolve();
}.bind(this));
しかし、最初のオプションを除いて、何も機能しません。だから、私の質問は - これを達成するためのより良い/エレガントな方法はありますか?