說我有一個訂閱可觀察到的這裏是否有可能以可持續反饋的方式使用Observables?
this.calculateService.CalculateBestRoute().subscribe(
data => {
drawRoute(data);
}
);
而且說CalculateBestRoute功能需要很長的時間做,因爲有許多事情它,但同時它在做這些事情時,就可以得到更好更好。
public CalculateBestRoute(): Observable<Route> {
let bestRoute;
DoThing1(bestRoute);
DoThing2(bestRoute);
DoThing3(bestRoute);
DoThing4(bestRoute);
return Observable.of(bestRoute);
}
如果我有這個代碼,bestRoute只會在最後返回。但是如果我不想等 - 如果我只想看看最好的路線是什麼時候怎麼辦?
是否可以使用Observable?我正在尋找類似下面...
public CalculateBestRoute(observable : Observable<Route>) {
let bestRoute;
DoThing1(bestRoute);
observable.update(bestRoute);
DoThing2(bestRoute);
observable.update(bestRoute);
DoThing3(bestRoute);
observable.update(bestRoute);
DoThing4(bestRoute);
observable.update(bestRoute);
}
我認爲你需要看看文檔爲['Observable.create ()'](http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#static-method-create)。你應該看到,'.next()'裏面有一個「抽新東西」的基本方法,可以觀察到一個流。你的問題可能不那麼呆板,但這似乎是你通常想說的。 –
你的例子不是非常一致,但它聽起來像你描述的[主題](https://github.com/Reactive-Extensions/RxJS/blob/master/doc/gettingstarted/subjects.md)。我寫了一篇關於我們如何使用這種模式的博客文章,如果你想了解更多信息:http://blog.jonrshar.pe/2017/Apr/09/async-angular-data.html – jonrsharpe
@jonrsharpe - 謝謝你也許我所追求的甚至不是可觀察的。我會看看 – Diskdrive