各リクエストにデータがあるかどうかを示す 'MoreItems'フラグを含む書籍のコレクションを返すWebサービスを呼び出しています返還請求のためにこれは、Webサービスが100に制限されたページングされた方法でデータを返すため、クライアントはオフセット値を要求しなければならないからです。複数のajax呼び出しですべてのデータが返された後にのみ遅延が解決されました - オフセット/テイク
例:
var getBooksFromWebserver = function (param) {
return {
uri: 'https://webservice.com/Books/GetBooks?authorId=' + param.author+ '&offset=param.offset&get=param.get',
method: 'GET',
resolveWithFullResponse: true
}
};
Data: {
Books : [],
MoreData: true
}
getBooksFromWebserverへの呼び出しは、このように呼ばれている:
module.exports.GetBooks = function (data) {
rp(getBooksFromWebserver(data), function(err, response, body) {
if (err) {
}
response.setEncoding(appLibconfig.encoding);
writer.transformAndWrite(data, body);
});
};
私が午前問題はMOREDATAがfalseを返すまで待機する繰延(ので、私はすべてのデータを知っているを実施していますwriter.transformAndWrite(data、body)に進む前に取得されます。
したがって、getBooksFromWebserverコールを繰り返し、応答をローカルにキャッシュして、各レスポンスを保持し、MoreDataがfalseの場合は、データを書き込み、キャッシュをクリアする必要があります。
私はいろいろなテクニックを試しましたが、動作するパターンを実装するのに苦労しています。
をデータが一緒に一つまたは全てずつのようにページネーション方式で返されますか? – Ayush
データは100のバッチで返されるので、私はのような呼び出しをする必要があります。取得= 100;オフセット= 0、次に取得= 100; offset = 100、unti MoreDataは返信でfalseを返します – Jrand
その後、すべてのデータが 'if(body.MoreData == true) 'を返した後で単純なチェックを行い、それを再度呼び出すことはできません。 – Ayush