为了账号安全,请及时绑定邮箱和手机立即绑定

如何在完成 Rxjs Observable 之前等待在 subscribe 内部定义的异步方法?

如何在完成 Rxjs Observable 之前等待在 subscribe 内部定义的异步方法?

潇潇雨雨 2021-12-02 15:40:50
让我们看下面的代码:myObservable.subscribe({  next: async () => {    await something();  },  complete: () => {    console.log('All async task are comlpeted');  }});问题是console.log在最后一个next被触发后被调用,但我希望在最后一个something()完成后调用它。有没有办法做到这一点?我指定我myObservable自己使用new Obsercable(observer => ...). 所以可以修改。
查看完整描述

1 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

我会 a) 坚持 observable 配方,并将承诺转换为 observable,或者 b) 坚持承诺/异步等待模式,并将 observable 转换为承诺。坦率地说,我不知道如何成功地混合这两者。


基于 Rx 的解决方案:


import { from } from 'rxjs';

import { finalize } from 'rxjs/operators';


myObservable.pipe(

    switchMap(() => from(something()),

    finalize(() => console.log('All async task are comlpeted')),

).subscribe(someFunction);


查看完整回答
反对 回复 2021-12-02
  • 1 回答
  • 0 关注
  • 254 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信