首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Angular中不再有异步或来自rxjs 6.X的回调

在Angular中不再有异步或来自rxjs 6.X的回调
EN

Stack Overflow用户
提问于 2018-07-14 01:39:24
回答 1查看 368关注 0票数 0
代码语言:javascript
复制
I have a simple service in Angular-6 app.

console.log("01: try to get Users...");
    let subScription = this.userService.getUsers().subscribe(
      data => {
        this.Users = data;
        console.log("03: set users...");
      },
      (error) => {
        console.error("Error to get data: ", error)
      },
      () => {
        console.log("04: complete get data....", )
      });

    console.log("02: return control to function call if service works like a promise")

如果我使用较旧版本的rxjs,则console.log的输出为:

代码语言:javascript
复制
01: try to get Users...
02: return control to function call if service works like a promise
03: set users...
04: complete get data

使用RxJS 6.X,输出如下所示:

代码语言:javascript
复制
01: try to get Users...
03: set users...
04: complete get data
02: return control to function call if service works like a promise

有没有人有同样的问题?如果是,那么如何修复它,使其像以前一样工作?

谢谢,

奥斯汀

EN

回答 1

Stack Overflow用户

发布于 2018-07-14 05:13:44

你需要先展示userService.getUsers()的代码,然后我们才能说出它为什么是这样的。

但是,如果您想强制它是异步的,那么您可以在asap调度程序上安排订阅,如下所示:

代码语言:javascript
复制
import {subscribeOn} from 'rxjs/operators';
import {asapScheduler} from 'rxjs';

// ...
this.userService.getUsers().pipe(subscribeOn(asapScheduler)).subscribe(...)

这确保了订阅调用异步发生,并将为您提供您以前拥有的行为。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51330307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档