【发布时间】:2018-06-26 17:44:15
【问题描述】:
我有以下可用的服务电话:
productService.GetAllProducts()
productService.DeleteProduct()
productService.GetCategories()
productService.DeleteCategory()
在 sudo 代码中,我需要在我的组件中执行以下操作:
使用 productService.GetAllProducts() 获取产品列表。
遍历产品列表并为每个产品调用 productService.DeleteProduct()。
一旦我可以确认上述删除全部完成(由于 db 限制),我需要使用 productService.GetCategories() 获取类别列表。遍历每个类别并调用 productService.DeleteCategory()。
我知道,如果我有更好的后端调用来进行批量删除,我的生活会轻松很多,但在这种情况下我别无选择。我需要遵循获取列表的模式,循环遍历它,每个项目单独删除一个。
是否有可能使用 flatMap 和 observable complete 参数做我想做的事情?我最大的问题是在搜索和删除所有类别之前知道代码何时完成删除所有产品。
【问题讨论】:
-
您已经问过同样的问题:stackoverflow.com/questions/51047390/…。你得到了答案和几个链接。
-
那篇文章中的链接不能解决我的问题。您实际上是在阅读我正在尝试做的事情,还是只是根据标题立即将内容标记为重复?我意识到我的问题与您链接的帖子略有不同,因此创建了一个新帖子。
-
他们确实解决了您的问题。但是 observables 很难,你需要仔细阅读文章,如果需要可以多次阅读,并在简单地拒绝解决方案之前进行实验。如果文章/建议中有您不理解的内容,请要求澄清,而不是重新发布相同的问题。
-
知道了,我会更彻底地阅读它们。无论如何,您可以给我一个大致的想法,看看我上面的 4 个 sudo 代码步骤,每个部分我需要哪些功能?
-
使用 forkJoin 从需要并行执行的几个 observable 中创建一个 observable(即多次删除)。使用 switchMap 一个接一个地执行 observable。
标签: angular typescript rxjs