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を使用して不動産サイトを作っています。RXJSエキスパンダー
私のクエリを実行しようとしているのは、RETSサーバーに限られています。すべてのデータを取得するまで、オフセットを増やすループでこれを実行します。私は、クエリを実行してカウント値を見つけるまで、カウントが何であるかわかりません。
私はexpandを使用しようとしましたが、どのように正確に動作するかの手がかりはありません。これらの複数の方法をやろうとしましたが、古いファッションを使っていてもwhileループは動作しません。 RXJSは角度4で使用していますので、私はRXJSに目を向けました。
これは明示的に行われています。私は最終的に更新されたプロパティをフェッチするためにコーンジョブを実行する必要がありますが、私の問題はすべてのデータをフェッチし、カウントがオフセットよりも大きければ毎回オフセットを増やしています。私は私のデータを持っていたら
offset += limit
、私はそれを保存する必要があります。したがって、たとえば、ここでは500の合計の上限と1のオフセットでクエリを実行する1690だから次のだろう私のオフセットを一周ですMongoDBへ。私はすでに成功しています。オフセットを手動で設定せずにすべてのデータを取得する方法を見つけるだけです。サーバーの制限は2500です
注意、はい優に超える2500
任意の提案を持っている可能性があり、そのような媒体として、私は一発でこのすべてを取得することができますが、他のデータもあるのですか?
これは機能しません。 switchMapは関数ではありません。 takeWhileには構文エラーがあり、クライアントの処理にはより良い統合が必要です。 –
@ JoshuaScottどのバージョンのRxJSを使用していますか? – paulpdaniels
私はRXJS 5を使用しています –