问题描述
rxjs delayWhen运算符存在问题。我想通过动作延迟计时器。我不明白为什么一种方法delayTimerStart_WORKING
有效而第二种方法delayTimerStart_NOT_WORKING
不可行。唯一的区别是,对于不起作用的方法,我要订阅一个主题。链接到stackblitz示例以更好地理解:https://stackblitz.com/edit/typescript-rx-playground-pkjajh
let timeStamp = Date.Now();
let subject = new Subject<any>();
let MOCK_DELAY_SUBJECT = () => {
timer(5000).subscribe(() => {
subject.next();
})
}
let delayTimerStart_NOT_WORKING: () => Observable<any> = () => {
return new Observable<void>(subscriber => {
subject.subscribe(() => {
subscriber.next();
})
})
}
let delayTimerStart_WORKING: () => Observable<any> = () => {
return new Observable<void>(subscriber => {
timer(5000).subscribe(() => {
subscriber.next();
subscriber.complete();
})
})
}
let timerDelay = () => {
timer(3000)
//.pipe(delayWhen(delayTimerStart_WORKING))
.pipe(delayWhen(delayTimerStart_NOT_WORKING))
.subscribe(() => {
console.log(`${(Date.Now() - timeStamp) / 1000} seconds`);
})
}
MOCK_DELAY_SUBJECT();
timerDelay();
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)