Angular 2 Rxjs在服务器响应后创建操作

时间:2018-06-07 18:06:55

标签: javascript angular promise rxjs

我是Angular2中的新手(尤其是RxJs库)并在下一步中叠加。我的网站以注册页面开头。 在注册表格完成后,我有基本service.auth.ts方法注册用法

     registerUser(){
        this.authService.registerUser(this.registrationForm.value)
        .subscribe((data) => {
           console.log(data);
        })
        //this line should apear after server response from backend
        console.log('AFTER SERVER RESPONSE')
        }

我收到这样的回复

enter image description here

我在RxJs文档中阅读了一些关于flatMap方法的内容,并声称它可以替代默认的Promise方法then() - 但我无法创建实际执行的代码实例我案例的flatMap方法

所以问题是:如何在服务器响应后实现结果'服务器响应后显示消息?(不是之前屏幕截图中提到的那样)

1 个答案:

答案 0 :(得分:2)

您应该等待异步任务完成。将console.log('AFTER SERVER RESPONSE')移到subscribe区块内。

registerUser() {
        this.authService.registerUser(this.registrationForm.value)
        .subscribe((data) => {
           console.log(data);
           //this line should apear after server response from backend
           console.log('AFTER SERVER RESPONSE')
        });

      // anything written over here will execute before `registerUser()` returns data
     console.log('THIS WILL PRINT BEFORE SERVER RESPONSE')
}