Angular 6如何等待httpclient返回

时间:2018-10-16 19:00:57

标签: angular httpclient angular6

我正在尝试从Angular 6调用我的flask接口上的函数。该函数应在单击时验证一些凭据,并根据响应显示错误或导航至页面。

以为我似乎无法找到一种方法来执行下一行代码,然后等待响应。这会导致一个错误,即需要按下两次按钮才能进行导航。

我尝试使用asyc/await,尝试使用.then,尝试将subscribe切换为map,但是没有任何效果。

我想我缺少一些关键的东西。

onClick() {
    let data = {
        // some data
    }
    let response = this.login(data);
    if (response["valid"] === true) {
        this.router.navigate(['/cool_page']);
    }
}

login(data) {
    let login_data = {}
    this.httpClient.post('http://somedomain.com/login', JSON.stringify(data)).subscribe( response => {
        login_data = response;    
    });

    return login_data; //this remains empty
}

1 个答案:

答案 0 :(得分:3)

需要与订阅相关的小修正。

class