如何创建一个在 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>

抱歉,我使用了旧式语法,因为我无法让运算符在编辑器中工作。