例如, var interval = Rx.Observable.interval(1000); interval.subscribe(x => console.log(x));
而 var deferred = Rx.Observable.defer(()=> return interval); deferred.subscribe(x=> console.log(x));
似乎做同樣的事情。似乎可觀察到的是默認的「延遲」。什麼是延遲有用?兩個Observables之間有什麼區別,如果一個是由延遲創建的?
1
A
回答
1
defer
需要一個參數函數,它返回一個可觀察值。運營商本身也會像大多數運營商一樣返回可觀察的數據。當 observable訂閱時,它將執行參數函數,獲取函數返回的observable並訂閱該observable,並將該observable的值傳遞給該流。
當您希望將函數返回的observable的創建推遲到defer
訂閱時間時,這很有用。在你的例子中,defer
並沒有帶來太多的價值,但是當你有一個回調執行一些API調用並且返回一個observable/promise但你不想立刻執行API調用的時候,它是很有用的。
示例比許多單詞好,您會在SO上找到類似問題中的一些,例如RxJS and React's setState - delay function execution until subscription,How to start second observable *only* after first is *completely* done in rxjs和Rx.js wait for callback to complete。
相關問題
- 1. 需要在兩個效果之間創建一個延遲Wpf
- 2. 這兩個....之間有什麼區別?
- 3. Socket和Transport之間有什麼區別,如果有一個
- 4. 這兩個張量之間有什麼區別,爲什麼?
- 5. 在隊列的兩個消息讀取之間創建延遲?
- 6. 如何創建兩個排序的observables之間的差異observable?
- 7. 兩個linux命令之間有多少延遲?如果第一個與&
- 8. 這兩行之間有什麼區別?
- 9. 兩個MediaElement之間的延遲
- 10. 兩個輸入之間的延遲java
- 11. 兩個Azure VM之間的延遲
- 12. 兩個代碼片段之間的區別是什麼
- 13. Angular Js:這兩個角度js之間的區別是什麼?
- 14. SQL Server中這兩個索引之間的區別是什麼?
- 15. 這兩個之間的區別是什麼(Haskell)
- 16. 是什麼這兩個ASP.NET MVC IgnoreRoute指令之間的區別?
- 17. 這兩個for循環之間的區別是什麼?
- 18. 是什麼這兩個之間的區別查詢
- 19. 什麼是兩個語句之間的區別... context.getImageData()。數據和
- 20. 這兩個ID之間的主要區別是什麼?
- 21. 是有什麼區別BTW兩個
- 22. 他們之間有區別,如果有,它是什麼?
- 23. Android動畫延遲(兩種方法有什麼區別)
- 24. 如果在LHS或RHS中指定時間延遲,有什麼區別?
- 25. 是什麼就是什麼這兩個之間的區別,除了與除BaseException
- 26. 以下兩個AngularJS構造(如果有)之間的區別?
- 27. 這兩個方程之間有什麼區別? GOOGLE CALC CONFUCKION
- 28. BaseDevModeType:這兩個枚舉之間有什麼區別?
- 29. TSQL-兩個查詢之間有什麼區別
- 30. 這兩個聲明在反應JavaScript之間有什麼區別?