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()
    vs
    await lastValueFrom(categories$)

  • toPromise
    的类型信息错误。当源
    可观察的
    完成时,没有发出一个值-它
    使用未定义的
    解决。在这种情况下,它应该拒绝。承诺是一种承诺
    “承诺”当它解决问题时,一个价值将存在——并且是它
    
    未定义
    。但是,当流完成时,不会发出任何值 您无法区分发出的
    未定义的
    流
    目标和一个完成而不再排放的流

  • 接下来应该使用什么?

    如果你真的坚持按承诺的方式做,那么,
    lastValueFrom
    /
    firstValueFrom
    。否则,切换到反应式编程将是一条出路

    这个链接应该会有所帮助-


    按照惯例,推荐中提供了备选方案:感谢您的回复和链接,这正是我想要的