我目前正在开发一个使用angular 6作为其前端框架的Web应用程序。我还将使用一些api端点从服务器获取数据。根据我的角度文档,这里我被卡住了,建议使用rxjs,但是使用rxjs运算符时我有点困惑。
答案 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具有许多:
可以观察到更具表现力,就像Lodash用于异步操作(有很多帮助 运算符)