0
私のemit.next(1)
が失われました。私の購読者は、すでに発行が完了した後でないと購読できません。rxjs: - サブスクライブ前に発行された値を受け取ります
この答えはRxJs: how to get values emitted before we subscribe?しかし、私はそれが働いて取得する方法がわからなかったのパブリッシュおよび接続示唆:
console.log('make emit')
let emit = new Subject<number>();
console.log('make obs')
let obs = emit.asObservable()
console.log('emit 1')
emit.next(1)
console.log('subscribe')
obs.subscribe((v)=>console.log(v,'!'))
console.log('emit 2')
emit.next(2)
console.log('set timeout 1000 to emit')
setTimeout(()=>emit.next(3),1000)
console.log('done')
出力:
make emit
main.bundle.js:1561 make obs
main.bundle.js:1563 emit 1
main.bundle.js:1565 subscribe
main.bundle.js:1567 emit 2
main.bundle.js:1566 2 "!"
main.bundle.js:1569 set timeout 1000 to emit
main.bundle.js:1571 done
main.bundle.js:1566 3 "!"
それは1 "!"
私はあなたが 'ReplaySubject'を使うことができると思います... – martin