如何创建一个在 0.75 秒后解析的 RxJS Observable?
How do I create an RxJS Observable that resolves after .75 seconds?
我想创建一个在 0.75 秒后解析的 Observable。我尝试这样做,但 Observable 立即解析:
import { Observable } from 'rxjs/Observable';
import { delay } from 'rxjs/operators/delay';
...
refresh(): Observable<any> {
// Return an observable that resolves after .75 seconds
return Observable.create().pipe( delay(750) );
}
我正在使用 rxjs
版本 5.5.2 和 typescript
版本 2.4.2
如果您希望计时器成为源,那么您可以执行以下操作:
console.log('start');
Rx.Observable.timer(750)
.subscribe(
x => console.log('next:', x),
null,
() => console.log('complete')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.5.2/Rx.min.js"></script>
文档如下:http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#static-method-timer
顺便说一句,您实际上必须将某些内容传递给创建方法。如果你不这样做,我认为它会引发以下错误:Cannot read property 'subscribe' of undefined
如果你想延迟返回一些可观察对象,那么你可以这样做:
console.log('start');
Rx.Observable.create(o => { o.next('test'); o.complete(); })
.delay(750)
.subscribe(
x => console.log('next:', x),
null,
() => console.log('complete')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.5.2/Rx.min.js"></script>
抱歉,我使用了旧式语法,因为我无法让运算符在编辑器中工作。
我想创建一个在 0.75 秒后解析的 Observable。我尝试这样做,但 Observable 立即解析:
import { Observable } from 'rxjs/Observable';
import { delay } from 'rxjs/operators/delay';
...
refresh(): Observable<any> {
// Return an observable that resolves after .75 seconds
return Observable.create().pipe( delay(750) );
}
我正在使用 rxjs
版本 5.5.2 和 typescript
版本 2.4.2
如果您希望计时器成为源,那么您可以执行以下操作:
console.log('start');
Rx.Observable.timer(750)
.subscribe(
x => console.log('next:', x),
null,
() => console.log('complete')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.5.2/Rx.min.js"></script>
文档如下:http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#static-method-timer
顺便说一句,您实际上必须将某些内容传递给创建方法。如果你不这样做,我认为它会引发以下错误:Cannot read property 'subscribe' of undefined
如果你想延迟返回一些可观察对象,那么你可以这样做:
console.log('start');
Rx.Observable.create(o => { o.next('test'); o.complete(); })
.delay(750)
.subscribe(
x => console.log('next:', x),
null,
() => console.log('complete')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.5.2/Rx.min.js"></script>
抱歉,我使用了旧式语法,因为我无法让运算符在编辑器中工作。