Я хочу позволить RxJS Observable справиться с моей тяжелой работой.Но я хочу сделать подписку асинхронной, если это необходимо.Например:
const observable = Rx.Observable.create(function (observer) {
observer.next(1);
var cycle = 100;
while(cycle-- > 0){
observer.next(2);
}
observer.next(3);
observer.complete();
});
console.log('before');
observable.subscribe({
next: x => console.log('got value ' + x),
error: err => console.error('something wrong occurred: ' + err),
complete: () => console.log('done'),
});
console.log('after');
, в этом случае строка после выводится после вывода всех данных из наблюдаемой.Но я хочу, чтобы наблюдаемый мог справиться с тяжелой работой и, при необходимости, сделать оставшуюся часть работы асинхронной.
Таким образом, один из способов, который приходит мне в голову, это поместить тяжелую часть в setTimeout.Я искал в Интернете, но пока не достигнуто решение.Каковы возможные пути и какой из них лучше?