observable 是懒惰的吗? Angular 5

Does observable are lazy ? Angular 5

 this.postService.delete(ps).subscribe(resp => this.res = resp);
 console.log('result'+this.res);

控制台显示结果:未定义

observable 是懒惰的吗?

不,他们不懒惰,但他们异步

试试这个:

this.postService.delete(ps).subscribe(resp => 
 { 
   this.res = resp;
   console.log('result'+this.res);
 });

与懒惰无关。它与异步.

有关

您正在发送 AJAX 请求。 AJAX中的第一个A表示异步。这意味着您发送请求,并且执行不会阻塞,直到响应返回。那会冻结整个应用程序。即使是这样,您也不必处理可观察对象。 HttpClient 会直接 return 响应。

因此,相反,它是异步的:您发送请求,然后在服务器发送和处理请求的同时继续执行任何您想做的事情。当响应最终返回时(可能是几秒钟后),浏览器通过调用回调函数告诉您它可用:您传递给 subscribe().

的回调函数

你可以把它看成一个烤面包机:你把面包放在烤面包机里,你可以在烤面包的同时继续阅读你的日记和浏览 Twitter。在烤面包机告诉您烤面包准备好之前,您不能开始吃烤面包。