3
A
回答
2
退房這個article
var result = Rx.Observable.fromPromise(fetch('http://myserver.com/'));
result.subscribe(x => console.log(x), e => console.error(e));
1
由於獲取調用返回尚未包含響應對象的另一個承諾,我會去創建自己觀察到的:
import { Observable } from 'rxjs';
import 'rxjs/add/operator/map';
const data$ = Observable.create(observer => {
fetch('http://server.com')
.then(response => response.json()) // or text() or blob() etc.
.then(data => {
observer.next(data);
observer.complete();
})
.catch(err => observer.error(err));
});
data$.subscribe(data => /*do something with data*/);
+0
真的不明白爲什麼這是downvoted。我認爲它實際上是一個更爲可靠的解決方案,即可接受的答案。 'Observable.fromPromise(fetch(..))'會立即觸發請求,而上面的命令會在'.subscribe()'之後有效地啓動它。 –
1
有庫文庫rxjs-fetch,但我建議不要使用它,而是寫:
const getData = (url, params) => {
return fetch(url, params).then(r => {
return r.ok ? r.text() : Promise.reject(`${r.statusText} ${r.status}`)
})
}
const getDataObserver = (url, params) => Rx.Observable.fromPromise(getData())
(在你的NodeJS需要node-fetch)
相關問題
- 1. 將RxJS Observable轉換爲Promise
- 2. 如何將主體轉換爲RxJs中的Observable 5
- 3. 如何將RxJS v4應用程序轉換爲RxJS v5版本
- 4. Rxjs Observable Interval和Angular2 HTTP:等待響應
- 5. 將Expedia API響應轉換爲html PHP
- 6. 如何將promise轉換爲observable angular2?
- 7. 將RxJava Observable轉換爲RxScala Observable
- 8. RxJS Observable等待Observable
- 9. 將Promise.all轉換爲Observable
- 10. 將Promise轉換爲Observable
- 11. 如何將AJAX響應轉換爲JSON?
- 12. 如何將ajax響應轉換爲html
- 13. 如何將JavaScript響應轉換爲HTML
- 14. 如何將WebService響應轉換爲PDF?
- 15. RxJS:將Node.js套接字轉換爲Observable並將它們合併爲一個流
- 16. 轉換API響應
- 17. 如何將API響應轉換爲圖像?
- 18. 如何將我的API響應轉換爲PHP數組?
- 19. combine RxJs Observable array
- 20. 如何將表單響應轉換爲ajax響應?
- 21. RXJS Observable doSomething onComplete
- 22. rxjs switch unwrapping observable
- 23. 將Facebook登錄換成RxJS Angular2應用中的Observable
- 24. Rxjs,Observable鏈接
- 25. 將查詢轉換爲Fetch-XMLQury
- 26. 訂閱RxJS Observable兩次。獲得兩次響應的價值
- 27. 將數據流轉換爲RxJS
- 28. 使用Fetch API讀取響應標頭
- 29. Angular 2:將Observable轉換爲Promise
- 30. Angular2:將數組轉換爲Observable
你可能要考慮採用了棱角分明的HTTP服務,如果您使用的角度或RxJS的['AjaxObservable'](https://github.com/ReactiveX/ rxjs/blob/5.4.1/src/observable/dom/AjaxObservable.ts#L101-L126)。他們有可取消的優勢;承諾不能被取消。 – cartant
這是一個使用Observable的Angular應用程序,但此應用程序在Web工作人員中工作。 Angular HTTP與web worker不兼容。我不得不破解它的工作。沒有它仍然使用'''XMLHttpRequest''' compred到FetchAPI具有比'''XMLHttpRequest'''更好的性能? –