RxJについていくつか理解しようとしています。私がやりたいことは、いくつかの JSON データを消費し、そのデータが入ってくるとすぐに DOM でそのデータのレンダリングを開始することです。ストリームの要求、応答、および表示をセットアップしました。それはすべてうまく出力していますが、時間の経過ではなく、一度にすべて実行しています。
ファイル全体が完了するのを待ってから一度に表示すると、長い待ち時間が発生するのではなく、ページにデータが入ってくると表示を開始したいと考えています。
//Cache the selector
var $resultList = $('.results');
//Gets the JSON (this will not be a static file,just for testing)
var requestStream = Rx.Observable.just("/results.json");
var responseStream = requestStream
.flatMap(function(requestUrl) {
return Rx.Observable.fromPromise(jQuery.getJSON(requestUrl))
});
var displayStream = responseStream.subscribe(
function(response) {
//This maps to a Handlebars Template and puts it on the DOM
$resultList.html(compiledTemplate(response));
},
function(err) {
console.log('Error: %s', err);
},
function() {
console.log('Completed');
});
//Sample of the data from the JSON file
Object{
beginIndex: "1"
catId: "111"
endIndex: "1"
products: Array[100]
}