gpt4 book ai didi

angular - Observable 在定义 user.id 之后创建发射

转载 作者:行者123 更新时间:2023-12-05 05:09:50 25 4
gpt4 key购买 nike

我无法在定义时发出用户 ID。这就是我所知道的,一旦你订阅了 observable,它就会监听变化并发出。是否有任何运算符可以在定义用户 ID 时发出。

我也尝试过使用 of 和 new Observable 运算符,我得到了相同的输出。

  constructor() {
setTimeout(() => {
this.user.id = 1
,5000})
}


getUserIdChat(): Observable<any> {
return Observable.create(data=> {
console.log(" i called")
if(typeof this.user.id != 'undefined') {
console.log('next called')
data.next(this.user.id);
data.complete();
}
})
}

constructor(private user: UserService) {
this.user.getUserIdChat().subscribe(data => {
console.log('data from user', data)
})
}

我应该在控制台中得到输出 1

最佳答案

做一个主题。

userSubject = new Subject<number>();

constructor() {
setTimeout(() => {
this.user.id = 1;
this.userSubject.next(this.user.id)
,5000})
}

getUserIdChat(): Observable<any> {
return userSubject.asObservable()
}


constructor(private user: UserService) {
this.user.getUserIdChat().subscribe(data => {
console.log('data from user', data)
})
}

关于angular - Observable 在定义 user.id 之后创建发射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57164278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com