Observable.no es una función
Tengo problemas con la importación de la función Observable.of
en mi proyecto. Mi Intellij lo ve todo. En mi código tengo:
import {Observable} from 'rxjs/Observable';
Y en mi código lo uso así:
return Observable.of(res);
¿Alguna idea?
18 answers
En realidad tengo importaciones desordenadas. En la última versión de RxJS podemos importarlo así:
import 'rxjs/add/observable/of';
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-12 09:08:28
Si alguien está teniendo este problema mientras usa Angular 6 / rxjs 6 vea las respuestas aquí: No se pudo usar Observable.de in RxJS 6 y Angular 6
En resumen, necesitas importarlo así:
import { of } from 'rxjs';
Y luego en lugar de llamar
Observable.of(res);
Solo use
of(res);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-28 11:42:11
Aunque suena absolutamente extraño, conmigo importaba capitalizar la 'O' en la ruta de importación de import {Observable} from 'rxjs/Observable
. El mensaje de error con observable_1.Observable.of is not a function
permanece presente si importo el Observable desde rxjs/observable
. Extraño pero espero que ayude a otros.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-29 06:16:33
Mi error tonto fue que olvidé agregar /add
cuando se requiere el observable.
Era:
import { Observable } from 'rxjs/Observable';
import 'rxjs/observable/of';
Que visualmente se ve bien porque el archivo rxjs/observable/of
, de hecho, existe.
Debe ser:
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-07 19:59:08
Sólo para añadir,
Si está utilizando muchos de ellos, puede importar todos usando
import 'rxjs/Rx';
Como mencionó @Thierry Templier. Pero creo que si usted está utilizando operador limitado entonces usted debe importar operador individual como
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/observable/of';
Como mencionó @uksz.
Porque 'rxjs/Rx' importará todos los componentes Rx que definitivamente cuestan rendimiento.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-23 05:59:30
Los parches no funcionaban para mí, por cualquier razón, así que tuve que recurrir a este método:
import { of } from 'rxjs/observable/of'
// ...
return of(res)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-11 21:46:00
También puede importar todos los operadores de esta manera:
import {Observable} from 'rxjs/Rx';
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-12 09:14:33
// "rxjs": "^5.5.10"
import { of } from 'rxjs/observable/of';
....
return of(res)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-19 06:51:15
Actualizado de Angular 5 / Rxjs 5 a Angular 6 / Rxjs 6?
Debe cambiar sus importaciones y su instanciación. Echa un vistazo a la entrada del blog de Damien
Tl; dr:
import { Observable, fromEvent, of } from 'rxjs';
const yourResult = Observable
.create(of(yourObservable))
.startWith(null)
.map(x => x.someStringProperty.toLowerCase());
//subscribe to keyup event on input element
Observable
.create(fromEvent(yourInputElement, 'keyup'))
.debounceTime(5000)
.distinctUntilChanged()
.subscribe((event) => {
yourEventHandler(event);
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-16 09:47:03
Esto debería funcionar correctamente solo inténtalo.
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-11 16:15:35
Estoy usando Angular 5.2 y RxJS 5.5.6
Este código hizo no trabajo:
import { Observable,of } from 'rxjs/Observable';
getHeroes(): Observable<Hero[]> {
return of(Hero[]) HEROES;
}
El siguiente código funcionó:
import { Observable } from 'rxjs/Observable';
import { Subscriber } from 'rxjs/Subscriber';
getHeroes(): Observable<Hero[]>
{
return Observable.create((observer: Subscriber<any>) => {
observer.next(HEROES);
observer.complete();
});
}
Método de llamada:
this.heroService.getHeroes()
.subscribe(heroes => this.heroes = heroes);
Creo que podrían haber movido / cambiado la funcionalidad de() en RxJS 5.5.2
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-19 12:15:23
Tuve este problema hoy. Estoy usando systemjs para cargar las dependencias.
Estaba cargando los Rxjs así:
...
paths: {
"rxjs/*": "node_modules/rxjs/bundles/Rx.umd.min.js"
},
...
En lugar de usar rutas use esto:
var map = {
...
'rxjs': 'node_modules/rxjs',
...
}
var packages = {
...
'rxjs': { main: 'bundles/Rx.umd.min.js', defaultExtension: 'js' }
...
}
Este pequeño cambio en la forma en que systemjs carga la biblioteca solucionó mi problema.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-26 17:48:24
Para Angular 5+:
import { Observable } from 'rxjs/Observable';
debería funcionar. El paquete observer también debe coincidir con la importación import { Observer } from 'rxjs/Observer';
si está utilizando observers que es
import {<something>} from 'rxjs';
hace una gran importación por lo que es mejor evitarlo.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-29 12:13:15
RxJS 6
Al actualizar a la versión 6 de la biblioteca RxJS
y no usar el paquete rxjs-compat
, el siguiente código
import 'rxjs/add/observable/of';
// ...
return Observable.of(res);
Tiene que cambiarse a
import { of } from 'rxjs';
// ...
return of(res);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-05 15:08:46
import 'rxjs/add/observable/of';
Muestra un requisito de rxjs-compat
require("rxjs-compat/add/observable/of");
No tenía esto instalado. Instalado por
npm install rxjs-compat --save-dev
Y volver a ejecutar solucionado mi problema.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-10 19:32:17
En rxjs
v6, of
el operador debe importarse como import { of } from 'rxjs';
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-26 08:53:37
De alguna manera incluso Webstorm lo hizo así import {of} from 'rxjs/observable/of';
y todo empezó a funcionar
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-01 12:12:26
Para mí (Angular 5 & RxJS 5) la importación de autocompletar sugerido:import { Observable } from '../../../../../node_modules/rxjs/Observable';
mientras que debe ser (con todos los operadores estáticosfrom
, of
, e. c. t trabajando bien:import { Observable } from 'rxjs/Observable';
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-07 10:36:00