如何使函数等到异步函数(http post request)在角度2中完成?

时间:2018-02-12 07:42:03

标签: angular typescript http

我有一个函数,它取决于http post请求函数的响应。但由于os post请求为异步,因此在获取post请求响应之前执行get函数。所以我得到了错误。

任何人都可以给出等待功能的解决方案,直到请求完成在角度2中?

提前致谢。

2 个答案:

答案 0 :(得分:1)

例如,如果你有一个进行服务调用的函数,并且你希望在服务调用成功执行后再调用一个函数,那么你需要调用第一个函数的.susbcribe中的第二个函数

this.serivce.servcefunction(yourrequest).subscribe
(data => 
{
secondfunctiontoexecute();
},
Error => 
{
alert("failed")
})

答案 1 :(得分:0)

post请求返回一个Observable,因此您需要订阅该Observable。

let post = {JSON to POST};

this.http.post(this.url, JSON.stringify(post))
    .subscribe(response => {
        functionToExecute()
     },
     (error: Response) => {
         if (error.status === STATUS_ERROR) {
             handleExpectedError();
         } else {
             handleUnexpectedError();
         }
});

您应该提取可重用的错误处理方法,因此您不必在写入的每个POST请求中将相同的代码写入不同的http错误。