Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

RxJS dependency issue with Scheduler.async

I have the following code inside the constructor of my Angular2 component class:

var observable = Observable.create(function (observer) {
      observer.next(1);
      observer.next(2);
      observer.next(3);
      observer.complete();
    }).observeOn(Scheduler.async);

I imports include the following:

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/observeOn';
import { Scheduler } from 'rxjs/Scheduler';
import 'rxjs/scheduler/async';

I tried the following import as well instead of the last import above:

import { async } from 'rxjs/scheduler/async';

I have the following error message while building my project using Angulat CLI:

Property 'async' does not exist on type 'typeof Scheduler'

What am I missing?

like image 395
coder Avatar asked Jun 03 '17 11:06

coder


Video Answer


1 Answers

yes, this is correct, because:

import { Scheduler } from 'rxjs/Scheduler';

this mean, you imported this class: https://github.com/ReactiveX/rxjs/blob/5.4.0/src/Scheduler.ts#L8-L63

and

import { async } from 'rxjs/scheduler/async';

is https://github.com/ReactiveX/rxjs/blob/5.4.0/src/scheduler/async.ts#L47

So you can see, Scheduler does not have async property, I guess you wanna convert this thing Rx.Scheduler.async source code here, you could try this solution:

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/observeOn';

import { async } from 'rxjs/scheduler/async';

var observable = Observable.create(function (observer) {
      observer.next(1);
      observer.next(2);
      observer.next(3);
      observer.complete();
    }).observeOn(async);
like image 85
Tiep Phan Avatar answered Sep 20 '22 18:09

Tiep Phan