gpt4 book ai didi

javascript - 在完成 Rxjs Observable 之前,如何等待 subscribe 中定义的异步方法?

转载 作者:行者123 更新时间:2023-11-29 22:46:07 25 4
gpt4 key购买 nike

让我们看看下面的代码:

myObservable.subscribe({
next: async () => {
await something();
},
complete: () => {
console.log('All async task are comlpeted');
}
});

问题是 console.log 在触发最后一个 next 之后被调用,但我希望它在最后一个 something() 完成。

有什么办法吗?

我指定我自己使用 new Obsercable(observer => ...) 实现了 myObservable。所以它可以被修改。

最佳答案

我要么 a) 坚持可观察的方法,将 promises 转换为 observable,要么 b) 坚持 promise/async-await 模式,并将 observable 转换为 promises。坦率地说,我不知道如何成功地混合这两者。

基于 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);

关于javascript - 在完成 Rxjs Observable 之前,如何等待 subscribe 中定义的异步方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58540668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com