Subscribe() 中的 Angular 代码如何同步运行

发布于 2025-01-11 14:04:03 字数 533 浏览 0 评论 0原文

_subscriptions.push(
  // Update list on OG selection
  ogViewModel.current$.subscribe(
    (group) => {
      this.groupUuid = group.ogUuid;
      this.groupId = group.id;
      this.getDevices();
      this.getSubOgs();
      this.updateGroup(group);
    },
  ),

我在订阅中有一段代码。然而,它们似乎没有按顺序执行。 this.getSubOgs() 在 this.getDevices() 之前执行。两者都是返回可观察值的 HTTP 调用。如何确保首先执行 this.getDevices() ? 点击查看代码

_subscriptions.push(
  // Update list on OG selection
  ogViewModel.current$.subscribe(
    (group) => {
      this.groupUuid = group.ogUuid;
      this.groupId = group.id;
      this.getDevices();
      this.getSubOgs();
      this.updateGroup(group);
    },
  ),

I have a block of code inside subscribe. However, it seems that they are not executed in order. this.getSubOgs() is executed before this.getDevices(). Both are HTTP calls that returns an observable. How do I make sure this.getDevices() is executed first?
Click to See Codes

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟凡古楼 2025-01-18 14:04:03

这基本上是 @MishaMashina 的建议

    _subscriptions.push(ogViewModel.current$.subscribe(
    (group) => {
      this.groupUuid = group.ogUuid;
      this.groupId = group.id;
      this.getDevices();
      this.updateGroup(group);
    },
  ),

getDevices() 和 getSubOgs()

在中保留单独的方法

public getDevices() { this.myApiClient.getDevices().Subscribe(
let onlyThisTime: boolean = true;
    (next) => doStuff
    (error) => doErrorStuff
    () => {if(onlyThisTime){this.getSubOgs();}}
    )}

this is basically @MishaMashina's suggestion

    _subscriptions.push(ogViewModel.current$.subscribe(
    (group) => {
      this.groupUuid = group.ogUuid;
      this.groupId = group.id;
      this.getDevices();
      this.updateGroup(group);
    },
  ),

both getDevices() and getSubOgs() remain seperate methods

in

public getDevices() { this.myApiClient.getDevices().Subscribe(
let onlyThisTime: boolean = true;
    (next) => doStuff
    (error) => doErrorStuff
    () => {if(onlyThisTime){this.getSubOgs();}}
    )}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文