0
var promise = $.when(sba_dfd.promise(), sbb_dfd.promise(), sbc_dfd.promise(), sbd_dfd.promise(), sbe_dfd.promise());
if (sbf_dfd.state() || sbg_dfd.state() == "resolved") {promise.state()=="rejected"};

この声明で何が摩耗していますか?構文だと思いますが、指が置けません。

4

1 に答える 1

0

これは、いくつかの逆解決ロジックで解決できると思います。拒否に応じて解決される遅延オブジェクト、およびその逆

最初に反転を行う関数:

function inverse_resolve(promise) {
    var dfrd = $.Deferred();
    promise.done(dfrd.reject).fail(dfrd.resolve);
    return dfrd.promise();
}

これで、、、、、に通常は応答するが、との逆状態に応答する、かなり従来型のwhen()式を作成できます。sbasbbsbcsbdsbesbfsbg

$.when(sba_dfd, sbb_dfd, sbc_dfd, sbd_dfd, sbe_dfd, inverse_resolve(sbf_dfd), inverse_resolve(sbg_dfd)).done(function() {
    //do something
});

わかりやすくするため.promise()に、いずれの場合も省略しました。実際には、約束に応答するのと同じ方法で延期に応答するため、.promise()必要ありません。.when()

私が言うように、これはうまくいくと思います。それは完全にテストされていません。

于 2012-12-20T04:16:26.163 に答える