如何将Rxjs订阅与Jquery Promise结合起来?

时间:2013-03-29 14:21:34

标签: jquery promise reactive-extensions-js

我使用Rx.js和JqueryPromises 我遇到了一种情况,我调用一种方法来处理由Rx发布的事件。然而,这种方法会返回一个承诺。

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

问题在于事件的处理不再是确定性的。 as methodThatReturnsPromise在推迟处理时立即返回。

我的问题:) 有没有办法“等待”承诺? 是否有任何钩子让Rx使用promises,即将订阅的返回承诺链接到下一个返回的订阅承诺,因此仍然按顺序处理消息?

1 个答案:

答案 0 :(得分:0)

此代码似乎可以为其他任何感兴趣的人提供帮助。 我只需要将退货延期链接起来。

Fiddle here

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();