我试图利用angular2中的observables感到困惑,为什么我应该使用map()
而不是subscribe()
。
假设我正在像这样从webApi获取值
this.http.get('http://172.17.40.41:8089/api/Master/GetAllCountry')
现在使用
subscribe(success, error, complete)
我可以获取成功回调中的所有值,也可以返回完整回调中的值。如果我可以完成所有这些功能,那么map()
有什么需要?有什么好处吗?简而言之,为什么要这样写:
this.http.get('http://172.17.40.41:8089/api/Master/GetAllCountry')
.map(r=>{})
.subscribe(value => {
}, error => error, () => {
});
,他们可以不使用map函数直接编写以下代码:
this.http.get('http://172.17.40.41:8089/api/Master/GetAllCountry')
.subscribe(value => {
}, error => error, () => {
});
最佳答案
如果您想返回Observable
,一些其他代码可以预订,但是您仍然想在当前方法中操纵数据事件,请使用map
。
可观察对象的实际用户需要subscribe()
,因为如果没有subscribe()
,则可观察对象将根本不会执行。 (forEach()
或toArray()
以及可能其他人也可以执行可观察的而不是subscribe()
)subscribe()
返回无法订阅的Subscription
,但可用于取消订阅。map()
返回可以订阅的Observable
。
关于angular - 为什么我们应该在Angular中的map()上使用subscribe()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42342781/