私は約束から結果をテストする必要があります。約束が時間内に解決され、条件付きの一部になるのだろうか?約束が時間内に条件付きになることを解決しますか?
if (myPromise() > 15 && myOtherPromise()) {
// do stuff when myPromise resolves to over 15 and myOtherPromise is true
} else {
// do stuff when myPromise resolves to 15 or less or myOtherPromise is false
}
または私はちょうどそれを吸うために必要としますか:
let myP = myPromise();
let myOtherP = myOtherPromise();
promise.all([myP, myOtherP]).then(function(res) {
if (res[0] > 15 && res[1]) {
// do stuff when myPromise resolves to over 15 and myOtherPromise is true
} else {
// do stuff when myPromise resolves to 15 or less or myOtherPromise is false
}
});
は皆のための以下のコメントの質問に「downvoting」と、これは繰り返しである考えから転載。
まあ、はい、いいえ。いいえ、私がJasmineと仕事をしているからです.Jasmineは、期待通りに通話が成功すると自動的に約束を解決します。
expect(myPromise()).toBeGreaterThan(15)
。だから、外部からは、比較を実行する前にifの条件が約束を解決するかもしれないと考えられたかもしれない。myPromise
とmyOtherPromise
と仮定すると
あなたは(知ることができませんこれが非同期のポイントです)。ちょうど "それを吸う"またはコールバック関数を呼び出す – nicovank
まあ、はいといいえ。いいえ、私がJasmineと仕事をしているからです.Jasmineは、期待通りに通話が成功すると自動的に約束を解決します。 'expect(myPromise()).BeGreaterThan(15)'。だから、外部からは、比較を実行する前にifの条件が約束を解決するかもしれないと考えられたかもしれない。 – Machtyn
@Machtyn 'if'であり、他の制御フロー構造は約束をサポートしていません。それらの非同期バージョンを持つことは興味深いでしょうが、私はそのための提案を知らない。 – ssube