lastValueFrom 而不是 toPromise() 为什么?

Dan*_*rdt 5 rxjs typescript

我看到 rxjs 将弃用 toPromise()。我们应该使用lastValueFrom 来代替。我想请问这背后的原因是什么?

语法 .toPromise() 更加简洁。

Jos*_*thy 3

Ben Lesh 关于 rxjs7 的几次公开演讲都涵盖了这个主题。总而言之,.toPromise()从来没有真正正常运行过。这是因为响应要么是已解析的值,要么是 undefined <T | undefined>,这不是 Promise 的工作方式。但是,.lastValueFrom()将返回类型的承诺<T>,或者如果没有发出任何值,它将抛出空错误。额外的好处是它.lastValueFrom()是可配置的,并且如果可观察对象不发出任何内容,您可以分配默认值。