为什么即使在取消后发布者还要发送新项目?

阿肖克·科伊

Subscription#cancel的文档

Data may still be sent to meet previously signalled demand after calling cancel.

  1. 在哪种情况下,人们希望发布者继续发送,直到满足先前的信号需求?
  2. 另外,如果我不想在取消后发送任何新项目,我该怎么办?
阿卡诺克

除非您正在创建低级运算符或Publishers,否则您不必担心这一点。

在哪种情况下,人们希望发布者继续发送,直到满足先前的信号需求?

主流 Reactive Streams 库都不会这样做,因为它们最终会停止发送项目。RxJava 2 和 Reactor 3 对此非常渴望,因此您很可能会在低级别异步发出的取消上有一个额外的项目。Akka Stream 可能发出更多信号(我上次检查时,它们混合了控制和项目信号,并且每个流的最大同步项目有一个配置设置,这可能导致在取消生效之前发出多个项目)。

另外,如果我不想在取消后发送任何新项目,我该怎么办?

取决于您实施的内容: aPublisher或 a Subscriber

Publisher最渴望的方法是设置一个volatile boolean cancelled 检查,每次你在某种排放循环。

在 a 中Subscriber,您可以在每个boolean done 字段中检查一个字段onXXX这样当您调用Subscription.cancel()from 时onNext,任何后续调用都将被忽略

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

即使取消后表格仍在发布

来自分类Dev

为什么即使在按取消后,onclick事件仍然会进入URL?

来自分类Dev

为什么取消状态没有被取消后的任务状态更改为取消?

来自分类Dev

为什么发布者在Pika RabbitMQ中声明队列a?

来自分类Dev

合并:如何取消flatMap的发布者

来自分类Dev

即使点击取消后,表单也会被提交

来自分类Dev

取消后无法重新创建和安排计时器增益。为什么?

来自分类Dev

为什么 ROS 发布者不发布第一条消息?

来自分类Dev

为什么我的签字,点击一次应用程序说它未知发布者

来自分类Dev

为什么Flux.flatMap()不等待内部发布者完成?

来自分类Dev

为什么“用户默认值”发布者会多次触发

来自分类Dev

为什么在UAC提示下仍然看到未知的发布者?

来自分类Dev

DirectProcessor 和 UnicastProcessor 可以在不应该订阅上游发布者时订阅。为什么?

来自分类Dev

为什么内核还要打扰发送SIGKILL?

来自分类Dev

取消后重用ADOQuery

来自分类Dev

取消后恢复wget

来自分类Dev

Jenkins中的ZMQ事件发布者未发送通知

来自分类Dev

Swift将尚未发送价值的发布者合并

来自分类Dev

发布者仅在无限循环中发送消息

来自分类Dev

发布者完成后,从AnyCancellable数组中删除

来自分类Dev

订阅返回的发布者后,如何触发流程?

来自分类Dev

在SwiftUI中异步更新后如何触发发布者?

来自分类Dev

AdMob发布者ID的用途是什么?

来自分类Dev

即使条件为真,为什么还要执行块?

来自分类Dev

即使verifyHostname为false,为什么还要进行主机验证?

来自分类Dev

同步提交发布者

来自分类Dev

同步提交发布者

来自分类Dev

将新项目添加到集合后,为什么我的MongoDB查询变慢?

来自分类Dev

取消后从FutureTask获取结果

Related 相关文章

  1. 1

    即使取消后表格仍在发布

  2. 2

    为什么即使在按取消后,onclick事件仍然会进入URL?

  3. 3

    为什么取消状态没有被取消后的任务状态更改为取消?

  4. 4

    为什么发布者在Pika RabbitMQ中声明队列a?

  5. 5

    合并:如何取消flatMap的发布者

  6. 6

    即使点击取消后,表单也会被提交

  7. 7

    取消后无法重新创建和安排计时器增益。为什么?

  8. 8

    为什么 ROS 发布者不发布第一条消息?

  9. 9

    为什么我的签字,点击一次应用程序说它未知发布者

  10. 10

    为什么Flux.flatMap()不等待内部发布者完成?

  11. 11

    为什么“用户默认值”发布者会多次触发

  12. 12

    为什么在UAC提示下仍然看到未知的发布者?

  13. 13

    DirectProcessor 和 UnicastProcessor 可以在不应该订阅上游发布者时订阅。为什么?

  14. 14

    为什么内核还要打扰发送SIGKILL?

  15. 15

    取消后重用ADOQuery

  16. 16

    取消后恢复wget

  17. 17

    Jenkins中的ZMQ事件发布者未发送通知

  18. 18

    Swift将尚未发送价值的发布者合并

  19. 19

    发布者仅在无限循环中发送消息

  20. 20

    发布者完成后,从AnyCancellable数组中删除

  21. 21

    订阅返回的发布者后,如何触发流程?

  22. 22

    在SwiftUI中异步更新后如何触发发布者?

  23. 23

    AdMob发布者ID的用途是什么?

  24. 24

    即使条件为真,为什么还要执行块?

  25. 25

    即使verifyHostname为false,为什么还要进行主机验证?

  26. 26

    同步提交发布者

  27. 27

    同步提交发布者

  28. 28

    将新项目添加到集合后,为什么我的MongoDB查询变慢?

  29. 29

    取消后从FutureTask获取结果

热门标签

归档