Соберите RxJS, наблюдаемый в массиве
Я хотел бы использовать RxJS, чтобы "соединить" асинхронный мир событий с миром синхронизации. В частности, я хочу создать функцию, которая возвращает массив событий, собранных за некоторый промежуток времени.
Я могу создать Observable, который делает то, что я хочу
var source = Rx.Observable
.interval(100 /* ms */)
.bufferWithTime(1000).take(1)
Я могу печатать правильные значения просто отлично
var subscription = source.subscribe(
function (x) {
console.log('Next: ' + JSON.stringify(x));
},
function () {
console.log('Completed');
});
Это печатает
[0,1,2,3,4,5,6,7,8]
Completed
Но я хочу назначить этот массив переменной. Концептуально хочу что-то вроде
var collectedDuringSecond = source.toPromise.getValue()
Идея состоит в том, что getValue будет блокироваться, поэтому после выполнения строки, приведенной выше, collectDuringSecond будет содержать [0,1,2,3,4,5,6,7,8]