我正在尝试将登录用户的详细信息提供给我的应用程序。我有以下代码在Angular 5中工作,但在Angular 6中不工作,因为. share()函数在rxjs 6中丢失
我需要这个吗。share()函数?关于rxjs 6的更改,我的代码看起来还好吗?
export class UserService {
readonly baseUrl = `${environment.apiUrl}/auth`;
private loggedIn = false;
private currentUserSubject = new BehaviorSubject<LoggedInUser>({} as LoggedInUser);
currentUser = this.currentUserSubject.asObservable().share();
constructor(private http: HttpClient) { }
login(userLogin: UserLogin) {
return this.http.post<any>(this.baseUrl + '/login', { username: userLogin.email, password: userLogin.password })
.subscribe(result => {
localStorage.setItem('auth_token', result.auth_token);
this.setCurrentUser();
return true;
});
}
setCurrentUser(): void {
if (localStorage.getItem("auth_token")) {
let jwtData = localStorage.getItem("auth_token").split('.')[1]
let decodedJwtJsonData = window.atob(jwtData)
let decodedJwtData = JSON.parse(decodedJwtJsonData)
this.currentUserSubject.next(
{
firstName: decodedJwtData.given_name,
id: decodedJwtData.id,
}
);
}
}
getCurrentUser(): LoggedInUser {
if (this.currentUserSubject.value.id) {
return this.currentUserSubject.value;
}
}
ngOnDestroy() {
this.currentUserSubject.unsubscribe();
}
isLoggedIn() {
this.setCurrentUser();
if (this.currentUserSubject.value.id) {
return true;
}
return false;
}
}
rxjsv5。5.2
已移动到可管道
操作符,以改进树抖动,并使创建自定义操作符更容易。现在,需要使用管道
方法组合
运算符
,
请参阅此
新导入
import { share} from 'rxjs/operators';
修改代码
currentUser = this.currentUserSubject.asObservable().pipe(share());
rxjs6-发生了什么变化?有什么新鲜事吗
我需要这个吗。share()函数?
根据您的用例,如果您不使用多个异步
管道
,您不需要share
运算符主题
充当源代码可观察
和许多观察者
之间的桥梁/代理,使多个观察者
共享相同的可观察
执行成为可能。
异步管道不使用共享或对模板中的多个重复使用进行任何优化。它为模板中异步管道的每次使用创建订阅。
参考:
RxJS:了解发布和共享运算符
问题内容: 我试图通过ctypes用Python中定义的回调替换共享库中的现有函数指针。 C中共享库的源代码: Python脚本的来源: 测试它的脚本: 我得到的输出: 因此,似乎在Python(plotxy)中定义的函数是type ,而在C中定义的函数指针是type 。尽管应用了替换in ,但在调用main函数时似乎没有任何效果。 除了阅读https://docs.python.org/3/li
我正在尝试测试点击一种反应成分,以利用酶Sinon 我的Comp组件有一个引发异常的保存功能 当我运行测试时,我希望不会抛出任何错误,并且存根中的空函数会被触发——但事实并非如此。组件内部的实际函数被触发,而不是空的存根。
我想替换我所有Wordpress帖子正文/内容(超过100万)中的所有URL href属性到我的新域“联系我们”URL,如: 喜欢 我可以用php做这个吗?或者有什么插件吗? 我无法将旧域名重定向到新域名,因为它已经过期,我无法访问它。我必须改变URL的href属性在每个Wordpress帖子。
问题内容: 我是bash脚本的新手,但我不理解为什么它不起作用 第3行的替代替换错误 问题答案: 该替换在Bash 4.2.8中正常工作(并且根据文档看起来还不错)。 我最好的猜测是您实际上并没有使用Bash-您如何调用脚本?如果您正在执行此操作,则可能会与Dash或类似的程序一起运行(Dash确实在第3行给出了替换错误)。尝试使用Bash()显式运行它。 如果事实证明您实际上是在使用Dash,这
从本质上讲,我试图遍历变量的内容,实现replace函数,并打印相应的更改。当我执行代码时,变量被打印出来,只是没有得到预期的结果。 预期结果如下: Lorem ipsum dolor坐在那里,有些字符串是有价值的,这是非常重要的。这是一个非常小的问题,当然也可以锻炼身体。在谴责中,在谴责中,在谴责中,在谴责中,在谴责中,在谴责中,在谴责中,在谴责中,在谴责中,在谴责中,在谴责中,在谴责中,在谴责
我用Mockito写UT,我想替换我的mock函数(哪个DB选择操作) 使用我在测试类中编写的新函数(使用map模拟数据库选择); 我想用正确的键输入返回正确的值 我试图这样做使用ArgumentCaptor如下,但它没有工作,因为我想 我想当调用dataBaseSelect.selectDataFromDB时,它将被模拟,然后从MapSelect.selectDataFromMap返回结果,参数