小编Ben*_*min的帖子

在 Angular 中订阅可观察对象时如何避免竞争条件

我是 Angular 的新手,正在编写这段代码。

  onUpdate(relation: RelationTypes) {
    let userId: number;
    this.assigneeId$.subscribe(assigneeId => userId = assigneeId);

    let customerId: string;
    this.customer$.subscribe(customer => customerId = customer.email);

    this.store.dispatch(actions.changeUserRelation({
      payload: {
        'userId': userId,
        'customerId': customerId,
        'relation': relation
      }
    }));
  }
Run Code Online (Sandbox Code Playgroud)

customerId$assigneeId$可观察量。我知道这里可能存在竞争条件,我很想消除这种情况。

所以我在想这样的事情。


     this.subscription.add(this.assigneeId$.subscribe(assigneeId => {
       this.customer$.subscribe(customer => {
         this.store.dispatch(actions.changeUserRelation({
           payload: {
             'userId': assigneeId,
             'customerId': customer.email,
             'relation': relation
           }
         }));
       });
     }));
Run Code Online (Sandbox Code Playgroud)

但这不起作用。也许你可以帮助我理解并解决问题。提前致谢。

race-condition typescript angular2-observables angular

1
推荐指数
1
解决办法
477
查看次数