【发布时间】:2017-07-04 03:29:29
【问题描述】:
var offset = 1;
var limit = 500;
var list = new Promise(function (resolve, reject) {
rets.getAutoLogoutClient(config.clientSettings, (client) => {
var results = client.search.query(SearchType, Class, Query, {
limit: limit,
offset: offset
});
resolve(results);
});
});
var source = Rx.Observable.fromPromise(list);
source.subscribe(results => console.log(results.count));
我正在做一个房地产网站,使用 RETS。
我试图做的查询受到 RETS 服务器的限制,在循环中运行它,增加我的偏移量,直到我拥有所有数据。在我运行查询并找到计数值之前,我不知道计数是多少。
我曾尝试使用 expand,但我不知道它是如何工作的。尝试执行这些多种方式,甚至使用老式的 while 循环,该循环不适用于 .then 方法。因此,自从我在 Angular 4 中使用 RXJS 后,我就转向了它。
这是通过快递完成的。我最终需要运行玉米作业以获取更新的属性,但我的问题是每次获取所有数据并增加偏移量,如果计数高于我的偏移量。例如,运行一个偏移量为 1 且限制为 500 的查询。这里的总数是 1690。所以接下来我的偏移量将是:
offset += limit
获得数据后,我需要将其保存到 MongoDB。我已经能够成功地做到这一点。它只是找到一种无需手动设置偏移量即可获取所有数据的方法。
请注意,服务器限制为 2500,是的,我可以一次性获取所有这些,但还有其他数据,例如媒体,可能超过 2500。
有什么建议吗?
【问题讨论】:
标签: javascript rxjs rets