从嵌套块返回最终可观察值

时间:2019-05-28 23:00:04

标签: node.js typescript rxjs observable

嗨,我有以下代码:

return this.facebook.getFacebookUserInfos(req.token).pipe(
      switchMap(user => {
            return this._repo.findBy({email: user.email}).pipe(
              switchMap(foundUser => {
                // assume foundUser is always null 
                if (!foundUser) {
                  const fromFacebook = this.createUserModel(user, event.queryStringParameters);
                 return this._repo.save(fromFacebook);
                }
                return of(foundUser);
              }));
          }),
          switchMap(user => {
            return this.getAuthToken(user)
          }),
          map(response => Response.ok(response.body, response.headers)),
          catchError((err) => of(Response.errorResponse(err)))
        );

我陷入困境,因为它调用this._repo.save(fromFacebook),并且不等待可观察对象完成,而是与另一个可观察对象一起进入下一个开关映射。我如何强制块在传递给下一个之前等待this._repo.save(fromFacebook)的结果? save方法也返回一个可观察值。在此先感谢您的帮助。 干杯

1 个答案:

答案 0 :(得分:0)

尝试以下代码段。

sys_get_temp_dir