重构嵌套的Observable + Promise + Observable

时间:2018-07-15 05:54:11

标签: angular nested observable

在异步工作时,我通常会遇到嵌套结构。当订阅给我响应时,我就做某事,当诺言给我响应时,我便做某事,依此类推。一个例子是这样的:

  loadHacks(hackService, hacksStorageService) {
    firebase.auth().onIdTokenChanged(
      (user) => {
        if (user) {
          const uid = user.uid;
          const hacks = hackService.getHacks();
          if (hacks.length === 0) {
            user.getIdToken()
              .then(
                token => {
                  hacksStorageService.fetchHacks(token, uid)
                    .subscribe(
                      (hacks: Hack[]) => {
                        hackService.setHacks(hacks);
                      }
                    )
                }
              )
          }
        }
      }
    );
  }

onIdTokenChanged将一个Observer放置在令牌上,getIdToken是一个Promise,fetchHacks是一个Observable。

如何重构代码?我已经阅读了有关操作的内容,但我并不十分了解。如果有人可以告诉我如何重构此类嵌套代码,我将不胜感激

0 个答案:

没有答案