相关疑难解决方法(0)

RXJS控制可观察的调用

我在Angular 2项目中使用RxJs版本5.我想创建一些observable,但我不希望立即调用observable.

版本4中,您可以使用(例如)受控命令或Pausable Buffers来控制调用.但是,该功能尚未在版本5中提供.

如何在RxJs 5中获得这种功能?

我的最终目标是对创建的observable进行排队并逐个调用它们.只有在成功处理上一个时才会调用下一个.当一个失败时,队列被清空.

编辑

通过@Niklas Fasching的评论,我可以使用Publish操作创建一个可行的解决方案.

JS Bin

// Queue to queue operations
const queue = [];

// Just a function to create Observers
function createObserver(id): Observer {
    return {
        next: function (x) {
            console.log('Next: ' + id + x);
        },
        error: function (err) {
            console.log('Error: ' + err);
        },
        complete: function () {
            console.log('Completed');
        }
    };
};

// Creates an async operation and …
Run Code Online (Sandbox Code Playgroud)

rxjs typescript rxjs5 angular

14
推荐指数
2
解决办法
4559
查看次数

AngularFire2无限滚动

我正在尝试使用Ionic2和Firebase实现无限滚动.

我使用AngularFire2.我想要做的是将新项添加到提取的列表,而不是重新加载整个列表.

let query$:Observable<any> = this.af.database.list(`quests/`, {
    query: {
        orderByChild: 'date_published',
        limitToFirst: this.recentChunkLimit$ //Subject where I push new limit length
    }
}).publishReplay(1).refCount();
Run Code Online (Sandbox Code Playgroud)

但是,当我查询这样的列表时,每次通过websockets重新加载整个列表,使每次下一次更新变得越来越慢.以下是网络websockets选项卡的屏幕截图: 的WebSockets 而且我注意到每个下一个块的请求都是2次(尽管我放了publishReplay).它发生在我使用AngularFire2的所有应用程序中.我可能会误解一些事情.我当然需要一些澄清.

// ==========编辑============

现在,我以某种方式设法实现我想要的,而不是每次都重新加载整个列表.不是最好的实现,但它的工作原理.基本上,我创建了一个可观察的数组,并通过订阅下一个chunk observable(其中我也得到了最后一个元素)来加载新的值.然而,后来的问题仍然存在 - 在套接字显示中,我获得了2次请求数据.在此输入图像描述

infinite-scroll firebase ionic2 angularfire2 angular

3
推荐指数
1
解决办法
1302
查看次数