从具有可观察项的post方法获取返回值

从具有可观察项的post方法获取返回值,post,null,angular2-observables,Post,Null,Angular2 Observables,我需要post方法返回的值。我试图映射数据,但它(newTask)保持为空。我不知道如何从这个函数中获取Tasks对象。请帮忙 public PostTask(task:Tasks){ let headers=new Headers({'Content-Type':'application/json'}); let options=new RequestOptions({headers:headers}); this._http.pos

我需要post方法返回的值。我试图映射数据,但它(newTask)保持为空。我不知道如何从这个函数中获取Tasks对象。请帮忙

    public PostTask(task:Tasks){

        let headers=new Headers({'Content-Type':'application/json'});
        let options=new RequestOptions({headers:headers});


       this._http.post('http://localhost:58592/api/tasks',task,options)
            .map(res => res.json() as Tasks)
            .map(newTask=>this.newTask=newTask) 
            .catch(this.handleError).subscribe();


    }
http.get()。要从发出的可观测值中提取值,我们应该在转换发出的值后订阅它

this._http.post('http://localhost:58592/api/tasks',task,options)
        .map(res => res.json() as Tasks)
        .subscribe( 
                newTask =>  this.newTask = newTask ,
                error => console.log(error);
        );   

请通读文档和示例。

第二张地图似乎没有必要。您只需执行
.map(res=>this.newTask=res.json())
。除此之外,您确定您的api按预期工作吗?你在开发工具/网络选项卡上看到你的json数据了吗?@BunyaminCoskuner,是的。我在gettaltasks()方法之后看到它。您如何以及何时尝试访问您的
this.newTask
?请记住,这是一个异步操作。如果您在调用此方法后立即尝试访问它,它将为空。@BunyaminCoskuner,就在PostTask之后(。感谢您注意到它。我真的很新。有没有办法知道newTask何时将被初始化?如果您需要使用它,请在map或subscribe方法中进行操作。您无法确定它何时可用