Javascript Rxjs toPromise()已弃用
我已经读到,Javascript Rxjs toPromise()已弃用,javascript,angular,typescript,rxjs,Javascript,Angular,Typescript,Rxjs,我已经读到,toPromise()在RxJS 7中被弃用,并将在RxJS 8中删除。 我经常在angular中将其与异步等待语法一起使用,以处理http调用。这被认为是一种反模式吗? 我理解流的概念,但http调用只发出一个值。对于一个简单的http调用,我不理解可观察性的意义。接下来我应该用什么?我应该完全接受反应式编程吗?为什么会发生这种情况? 如上所述,toPromise被弃用的主要原因如下: 一个目标是将其从可观察的原型中删除,并将其转换为独立的util函数 toPromise的命名不
toPromise()
在RxJS 7中被弃用,并将在RxJS 8中删除。
我经常在angular中将其与异步等待语法一起使用,以处理http调用。这被认为是一种反模式吗?
我理解流的概念,但http调用只发出一个值。对于一个简单的http调用,我不理解可观察性的意义。接下来我应该用什么?我应该完全接受反应式编程吗?为什么会发生这种情况?
如上所述,toPromise
被弃用的主要原因如下:
可观察的原型中删除,并将其转换为独立的util函数
toPromise
的命名不是最好的。尤其是与await
结合使用时,它的阅读效果不太好:await categories$.toPromise()
vsawait lastValueFrom(categories$)
toPromise
的类型信息错误。当源可观察的完成时,没有发出一个值-它
使用未定义的解决。在这种情况下,它应该拒绝。承诺是一种承诺
“承诺”当它解决问题时,一个价值将存在——并且是它
未定义
。但是,当流完成时,不会发出任何值
您无法区分发出的未定义的流
目标和一个完成而不再排放的流
lastValueFrom
/firstValueFrom
。否则,切换到反应式编程将是一条出路
这个链接应该会有所帮助-
按照惯例,推荐中提供了备选方案:感谢您的回复和链接,这正是我想要的