使用Observable的HTTP调用无法正常工作

时间:2018-01-06 13:55:49

标签: angular observable

在下面的函数中,我有两次调用服务器,一次使用Observable,另一次使用Promise。使用Observable的调用不会到达服务器,而是使用promise的调用。知道为什么吗?

public placeOrder(order:string) {

//Using Observable
this.http.post(this.newOrderUrl, {order: order}, this.options)
.map((response:Response) => {
  console.log('new order', response.json())
})

//Using Promise
this.http.post(this.newOrderUrl, {order: order}, this.options)
.toPromise()
.then((response:Response) => {
  console.log('new order', response.json())
})
}

1 个答案:

答案 0 :(得分:1)

如果使用Observable

,则需要返回response.json()
 return this.http.post(this.newOrderUrl, {order: order}, this.options)
   .map((response: Response) => response.json()
 );

并在您的组件中,使用subscribe()

进行调用
this._myservice.placeOrder('somestring').subscribe((orders: any) => {
});