जवाबों:
वास्तव में मैं आयात गड़बड़ है। RxJS के नवीनतम संस्करण में हम इसे इस तरह आयात कर सकते हैं:
import 'rxjs/add/observable/of';
operator/
- rxjs/add/operator/of
- से आयात कर रहा था observable/
। डी 'ओह।
अगर किसी को कोणीय 6 / rxjs 6 का उपयोग करते समय यह समस्या हो रही है, तो यहां उत्तर देखें: RxJs 6 और कोणीय 6 में Observable.of का उपयोग नहीं किया जा सकता है
संक्षेप में, आपको इसे इस तरह से आयात करने की आवश्यकता है:
import { of } from 'rxjs';
और फिर कॉल करने के बजाय
Observable.of(res);
महज प्रयोग करें
of(res);
हालाँकि यह बिल्कुल अजीब लगता है, मेरे साथ आयात के रास्ते में 'O' को कैपिटल करने की बात हुई import {Observable} from 'rxjs/Observable
। observable_1.Observable.of is not a function
यदि मैं ऑब्जर्वेबल से आयात करता हूं, तो त्रुटि संदेश मौजूद रहता है rxjs/observable
। अजीब लेकिन मुझे उम्मीद है कि यह दूसरों की मदद करता है।
यदि आप Angular 6/7 का उपयोग कर रहे हैं
import { of } from 'rxjs';
और फिर कॉल करने के बजाय
Observable.of(res);
महज प्रयोग करें
of(res);
मेरी मूर्खतापूर्ण गलती यह थी कि मैं /add
अवलोकन योग्य होने पर जोड़ना भूल गया ।
था:
import { Observable } from 'rxjs/Observable';
import 'rxjs/observable/of';
जो rxjs/observable/of
वास्तव में ओके बैस्यू फाइल दिखता है, वास्तव में मौजूद है।
होना चाहिए:
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
पैचिंग मेरे लिए काम नहीं कर रही थी, जो भी कारण हो, इसलिए मुझे इस पद्धति का सहारा लेना पड़ा:
import { of } from 'rxjs/observable/of'
// ...
return of(res)
बस जोड़ने के लिए,
यदि आप उनमें से कई का उपयोग कर रहे हैं तो आप सभी का उपयोग करके आयात कर सकते हैं
import 'rxjs/Rx';
जैसा @Thierry Templier द्वारा बताया गया है। लेकिन मुझे लगता है कि यदि आप सीमित ऑपरेटर का उपयोग कर रहे हैं तो आपको व्यक्तिगत ऑपरेटर को आयात करना चाहिए
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/observable/of';
जैसा कि @uksz द्वारा बताया गया है।
क्योंकि 'rxjs / Rx' सभी Rx घटकों को आयात करेगा जो निश्चित रूप से प्रदर्शन लागत।
आप सभी ऑपरेटरों को इस तरह से आयात कर सकते हैं:
import {Observable} from 'rxjs/Rx';
import { Observable } from 'rxjs/Observable' import 'rxjs/add/observable/of';
काम नहीं करता है। केवल import {Observable} from 'rxjs/Rx';
काम करता है। संस्करण 5.4.2 है
Observable_1.Observable.of(...).delay(...).timeout is not a function
। मैंने उपयोग नहीं कियाimport 'rxjs/add/operator/timeout'
मैं Angular 5.2 और RxJS 5.5.6 का उपयोग कर रहा हूं
यह कोड काम नहीं किया:
import { Observable,of } from 'rxjs/Observable';
getHeroes(): Observable<Hero[]> {
return of(Hero[]) HEROES;
}
नीचे दिए गए कोड ने काम किया:
import { Observable } from 'rxjs/Observable';
import { Subscriber } from 'rxjs/Subscriber';
getHeroes(): Observable<Hero[]>
{
return Observable.create((observer: Subscriber<any>) => {
observer.next(HEROES);
observer.complete();
});
}
कॉलिंग विधि:
this.heroService.getHeroes()
.subscribe(heroes => this.heroes = heroes);
मुझे लगता है कि वे RxJS 5.5.2 में (/) कार्यक्षमता को स्थानांतरित / बदल सकते हैं
// "rxjs": "^5.5.10"
import { of } from 'rxjs/observable/of';
....
return of(res)
कोणीय 5 / Rxjs 5 से कोणीय 6 / Rxjs 6 में अपग्रेड किया गया?
आपको अपने आयात और अपनी तात्कालिकता को बदलना होगा। डेमियन की ब्लॉग पोस्ट देखें
Tl, डॉ:
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);
});
मुझे आज यह समस्या थी। मैं निर्भरता को लोड करने के लिए systemjs का उपयोग कर रहा हूं।
मैं इस तरह Rxjs लोड कर रहा था:
...
paths: {
"rxjs/*": "node_modules/rxjs/bundles/Rx.umd.min.js"
},
...
उपयोग पथ के बजाय इसका उपयोग करें:
var map = {
...
'rxjs': 'node_modules/rxjs',
...
}
var packages = {
...
'rxjs': { main: 'bundles/Rx.umd.min.js', defaultExtension: 'js' }
...
}
जिस तरह से सिस्टमज ने पुस्तकालय को मेरी समस्या तय की है, उसमें यह थोड़ा बदलाव।
कोणीय 5+ के लिए:
import { Observable } from 'rxjs/Observable';
कार्य करना चाहिए। पर्यवेक्षक पैकेज को आयात से भी मेल खाना चाहिएimport { Observer } from 'rxjs/Observer';
यदि आप पर्यवेक्षकों का उपयोग कर रहे हैं तो
import {<something>} from 'rxjs';
एक बड़ा आयात करता है इसलिए इससे बचना बेहतर है।
में rxjs
v6, of
ऑपरेटर के रूप में आयात किया जाना चाहिएimport { of } from 'rxjs';
किसी तरह वेबस्टॉर्म ने भी इसे ऐसा बनाया import {of} from 'rxjs/observable/of';
और सब कुछ काम करने लगा
import { of } from 'rxjs'; return of(res);
github.com/ReactiveX/rxjs/blob/master/MIGRATION.md#import-paths और github.com/ReactiveX/rxjs/blob/master/...