为什么Subscribe完成后还能调用Subscribe?

Why can subscribe be called on subject even after it is completed?

根据大多数博客,我们不需要在调用完成后明确取消订阅主题。我在调用完成后尝试订阅该主题。完整的回调还是执行了。

let s = new Subject();
s.complete();

s.subscribe(
  () => {
    console.log("next");
  },
  () => {},
  () => {
    console.log("complete");
  }
);

输出:完成

为什么完成后允许订阅主题?

在这种情况下,首先会发送 'complete' 通知,然后立即取消订阅。所以它仍然认为您不必手动取消订阅。

如果你首先想知道订阅有什么用,你可以想一个例子,我们将 isEmpty 运算符应用于主题,并根据此运算符接下来的值做一些事情。