我有一个服务有一个方法foo。在这个方法中,我订阅了一个可观察的(http客户机)。
foo () : boolean
{
let ret : false;
this.http.get ("/blabla").subscribe (
(resp) =>
{
ret = true;
}
return ret;
);
我喜欢从foo返回一个布尔值,它取决于get。这不起作用,因为http.get是asynchrouns-在http.get完成之前调用return。
我怎样才能使它同步?
返回可观察的而不是布尔值在这里不是一个选项。
我用管子和水龙头扩展了我的样品。现在,我返回服务外部的http.get-observable,并使用tap处理http.get-result。
foo () : Observable <any>
{
return this.http.get ("/blabla").pipe (tap (x => handlehere ()));
}