在angular 6中使用rxjs observables的目的是什么?与异步/等待相比,rxjs有何优势?

时间:2018-09-16 05:46:10

标签: rxjs angular6

我目前正在开发一个使用angular 6作为其前端框架的Web应用程序。我还将使用一些api端点从服务器获取数据。根据我的角度文档,这里我被卡住了,建议使用rxjs,但是使用rxjs运算符时我有点困惑。

2 个答案:

答案 0 :(得分:1)

如果仅考虑对API的http调用,那么RxJS与Promises相比带来的优势并不多。 retry运算符使在发生错误时更容易重试,也许使用switchMap可以更轻松地管理比赛条件,但总体而言并没有那么多。

原因是http调用是“一次尝试”的事情。您触发1个电话,而该1个电话仅返回1个结果或错误。就像承诺是“一枪”一样。

RxJS真正的亮点是必须处理随时间推移可能具有超过1个发射的事件流。 Cloud和DOM是此类流来源的两个示例。在这些情况下,您可以了解RxJS在类固醇方面的承诺。

这里有几个例子:

答案 1 :(得分:1)

  • 如果我们在完成http调用之前取消订阅,则可观察值为var id = Convert.ToBase64String(Encoding.UTF8.GetBytes(chunkData.ChunkIndex.ToString("d6"))); -http调用将被中止。

  • Observable具有更好的可组合性,例如:默认情况下Promise具有1种扁平化策略:cancelable,RxJ具有许多:

    switchMap
    mergeMap
    concatMap
    exhaustMap

  • 可以观察到更具表现力,就像Lodash用于异步操作(有很多帮助 运算符)