我试图利用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/

10-11 23:54