我希望这个问题不会得到的意见标记,因为我实际上是在寻找我的概念中的技术缺陷。
我的大多数返回可观察性的函数都应该确保它们无论如何都能被执行,并在调用者被打扰时通知他。
例如,如果我有一个登录方法login(username, password): Observable<User>
,无论调用方是否被插入,我都要确保该方法得到执行。现在,在这种情况下,我总是使用相同的模式:
login(username, password): Observable<User> {
let result = queryUser(username, password).pipe(
//pretty many things may happen here
);
//Make the observable hot
result = result.pipe(share());
result.subscribe();
return result;
}
这是出于某种原因的一种糟糕做法还是一种非常常见的实现?share((应该首先调用还是最后调用?
和@martin一样,我建议不要使用这种行为,因为它会破坏反应上下文。
订阅/取消订阅该功能不会有任何效果。