我不明白這是什麼意思rxjs文檔中的調度,所以我想通過情景其有用的理解,所以我能理解調度Rxjs:你想要什麼情況下使用調度
1
A
回答
6
&tldr;
在你將永遠需要的,如果擔心自己與Schedulers
大多數情況下只有一個事實,即對案件90%的默認值是罰款。
說明
甲Scheduler
是簡單地使用時RxJS標準化時間的一種方式。它有效地時間表事件發生在未來的某個時間。
我們通過使用schedule
方法來排隊調度程序將來執行的新操作。 Scheduler
如何做到這一點完全取決於實施。通常,這只是選擇執行未來行動的最有效手段。
舉一個簡單的例子,我們使用timer
操作符在將來的某個時間執行操作。
var source = Observable.timer(500);
這是RxJS的相當標準的票價。當你問這個問題時,Scheduler
就進來了,500是什麼意思?在默認情況下,它將等於500毫秒,因爲約定是這樣的,這就是默認的Scheduler
將會執行的操作,它將等待500毫秒,然後發出一個事件。
但是,有些情況下我們可能不希望時間的流動正常運行。最常見的用例就是我們正在測試的時候。我們實際上並不想等待500毫秒完成任務,否則我們的測試套件將需要很長時間才能真正完成!
在這種情況下,我們實際上希望控制時間流,以便在驗證流的結果之前不必等待500毫秒。在這種情況下,我們可以使用可以同步執行任務的TestScheduler
,以便我們不必處理任何異步混亂。
let scheduler = new TestScheduler();
//Overrides the default scheduler with the default scheduler
let source = Observable.timer(500, scheduler);
//Subscribe to the source, which behaves normally
source.subscribe(x => expect(x).to.be(0));
//When this gets called all pending actions get executed.
scheduler.flush();
還有一些其他更多的情況下,我們也想改變時間的流動。例如,如果我們在遊戲的背景下進行操作,我們可能希望將我們的日程安排連接到或其他一些虛擬時間尺度,這需要使用諸如AnimationFrameScheduler
或VirtualTimeScheduler
之類的東西。
相關問題
- 1. 有什麼情況下你不想包括警衛?
- 2. 在什麼情況下調用__rmul__?
- 3. 在什麼情況下viewWillAppear被調用?
- 4. 在什麼情況下我想要處理ChartArea.AxisViewChanging而不是ChartArea.AxisViewChanged?
- 5. 你會在什麼情況下使用Select from without?
- 6. 在什麼情況下,我們需要調用GC.Collect兩次
- 7. 在什麼情況下使用Django formset?
- 8. 如何在使用情況下在什麼情況下使用tsql?
- 9. 在什麼情況下我們需要使用`multiprocessing.Pool.imap_unordered`?
- 10. 在理想的調試器中你想要什麼?
- 11. 在什麼情況下調用Application_EndRequest,但是Application_BeginRequest未被調用?
- 12. 爲什麼在以下情況下不會調用「onPause」?
- 13. 你在有條件的情況下稱做什麼工作?
- 14. 在什麼情況下你會得到`System.UnauthorizedAccessException`?
- 15. 在什麼情況下想要連接到本地主機以外的主機?
- 16. 什麼情況下**會有用?
- 17. 有什麼用在這種情況下
- 18. 什麼工具/應用程序/你想要什麼?
- 19. 在什麼情況下,該應用程序:didFinishLaunchingWithOptions:被調用?
- 20. 爲什麼CoffeeScript在下列情況下需要括號?
- 21. 爲什麼要用熊貓fillna()在這種情況下
- 22. 爲什麼你想要一個類私下遵守協議?
- 23. 爲什麼try/catch在某些情況下需要,而不是其他情況?
- 24. 想要記下我的C程序的CPU使用情況和內存使用情況
- 25. 在什麼情況下調用Parse HTML事件?
- 26. 在什麼情況下C++析構函數不會被調用?
- 27. 在什麼情況下調用ELResolver的setValue方法?
- 28. 在什麼情況下可以調用afx_msg void OnDestroy()又名CWnd:OnDestroy()?
- 29. 爲什麼setTimeOut在這種情況下不被調用?
- 30. 在什麼情況下不會調用Sybase觸發器?