我想创建一个在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
答案 0 :(得分:1)
如果您希望计时器作为源,那么您可以执行以下操作:
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
你必须实际将一些东西传递给create方法btw。如果你不这样做,我认为它会引发以下错误:Cannot read property 'subscribe' of undefined
如果你想推迟返回一些observable,那么你可以这样做:
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>
抱歉,我使用旧式语法,因为我无法获取操作员在编辑器中的导入。