首页 > 解决方案 > Observable 'save' 应该返回 EMPTY 或一个虚拟值

问题描述

我在我的应用程序中看到一个常见模式,其中函数返回不需要提供next()值(即save())但可能是 Observable 链的一部分的 Observable。

在这个工作示例(下面的链接)中,我有一个BookService带有save()和的演示getBooks()。代码示例保存了 2 本书,从服务和控制台获取书籍,并通过单个可观察链记录书籍。

我已经尝试了这两个选项:

选项1:

选项 2:

选项 3:

代码示例提供了选项 1 和选项 2(已注释)。

问题:返回之类的函数应该是什么save()?是否有关于此类场景的可观察设计的书面文档/文章?

感谢您对此的想法。

标签: typescriptrxjs

解决方案


我的理解是,这取决于您的用例。使用 Observables 允许你为你的.Save()函数实现取消行为。它是否返回一个值或只是完成取决于您。根据您的使用情况(您是否总是使用defaultIfEmpty它?)您可以选择纯版本(没有价值,只是完成)或让它默认为一个值以使您自己更容易。

重要的你记录你的.Save()函数的消费者可以期望你的 observable 的行为。它真的会只发出一个true值并完成吗?或者从不发出值?


推荐阅读