繁体   English   中英

如何在angular 4中进行同步http调用

[英]How to make synchronous http calls in angular 4

我有一个 Angular 4 登录应用程序。 我要登录同步操作但异步? 你能帮助我吗?

数据.service.ts:

login(userName: string,pwd: string): Promise<User>  {
    const url =`loginLdap/${userName}&${pwd}`;  
    return this.http.get(url).toPromise()
    .then(response => response.json() as User)
    .catch(this.handleError);
}

用户服务.ts:

public authenticate( userName: string, pwd: string): Observable<User>{
    this.dataService.login(email, password).then(items => this.items = items);
    console.log(this.items);

    if (this.items.success) {
        this._authenticated = true;
        ...
        return Observable.of(User);
    }else{ 
        return Observable.throw(new Error("System Error"));
    }

}

请查看 Rxjs forkJoin 运算符。 它将允许您链接多个 Observable,然后在所有 Observable 都发出后采取行动。 在 forjoin 正文中添加您的 if/else 逻辑。 这将是一种优雅的方式来完成您正在寻找的东西。

如果您在进行此设置时遇到问题,请创建一个 plunkr,我们可以一起解决。

如果您在使用此功能时没有问题,请发布生成的文件供其他人查看,当您按需要运行时。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM