是否可以使用map,filter等运算符和promises

时间:2018-02-05 17:19:46

标签: promise rxjs observable

以下是我在网址中阅读的优势:Angular - Promise vs Observable

承诺:

  1. 返回单个值
  2. 未取消
  3. 使用try / catch和async / await更可读的代码
  4. 观察到的

    1. 随着时间的推移使用多个值
    2. 撤销
    3. 支持map,filter,reduce和类似运算符
    4. 使用Reactive Extensions(RxJS)
    5. 一个数组,其项目随时间异步到达
    6. 在观察中,我看到3& 4指向支持运算符和RXJS。我只是有一个基本的问题,比如我可以使用RXJS和运营商吗?第5点是什么意思

1 个答案:

答案 0 :(得分:1)

简而言之,不能直接在Promise上使用这些运算符(如map,filter)。

Rxjs确实提供了一个运算符toPromise,它确实将Observable转换为Promise - 如果这是您的偏好。

我认为第5点实际上与第1点混淆。第1点是Observables的关键所在:随着时间的推移处理0到n的值。

如果您习惯使用Promises简单地用于Ajax请求,那么您可能认为没有用处 - 例如点击一个端点并获得一个值。但是在Observables的情况下,您可以在任何上下文中使用它们 - 例如,DOM事件。

如果您是通过收听Mouseover事件创建一个Observable,那么您将在任何给定的时间内收到n个值 - 然后您就可以对这些事件作出反应。

在考虑Ajax请求时,经典示例是前瞻搜索输入,在您的问题链接中详细说明。