0

Rx.js と JqueryPromises を使用しています。Rx によって発行されたイベントを処理するメソッドを呼び出す状況に遭遇しました。ただし、このメソッドは promise を返します。

eventStream.Subscribe(function(e) { methodThatReturnsPromise(e);});

問題は、イベントの処理が決定論的ではなくなったことです。As methodThatReturnsPromise は、処理を延期するため、すぐに戻ります。

私の質問:)約束を「待つ」方法はありますか?Rx が promise を使用するためのフックはありますか? つまり、返された subscribe の promise を次に返された subscribe の promise にチェーンするため、メッセージは引き続き順番に処理されますか?

4

1 に答える 1

0

このコードは、興味のある人にとってはうまくいくようです。リターンの据え置きを連鎖させるだけです。

ここでフィドル

var seed = $.Deferred();
seed.resolve();
observable.aggregate(seed, function(chain, n){
    return chain.then(function(){
        console.log("Starting on Event " + n);
        return process(n);
    });
}).subscribe();
于 2013-03-29T17:48:01.827 に答える