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'''更好的性能? –