angular - Observable.of एक फ़ंक्शन नहीं है




rxjs (13)

अगर किसी को कोणीय 6 / rxjs 6 का उपयोग करते समय यह समस्या हो रही है, तो यहां दिए गए उत्तर देखें: RxJs 6 और कोणीय 6 में Observable.of का उपयोग नहीं किया जा सकता है

संक्षेप में, आपको इसे इस तरह से आयात करने की आवश्यकता है:

import { of } from 'rxjs';

और फिर कॉल करने के बजाय

Observable.of(res);

महज प्रयोग करें

of(res);

मैं अपनी परियोजना में Observable.of फ़ंक्शन आयात करने के साथ समस्या कर रहा हूं। मेरी इंटेलीज सब कुछ देखती है। मेरे कोड में:

import {Observable} from 'rxjs/Observable';

और मेरे कोड में मैं इसे इस तरह उपयोग करता हूं:

return Observable.of(res);

कोई विचार?


आप सभी ऑपरेटरों को इस तरह से आयात कर सकते हैं:

import {Observable} from 'rxjs/Rx';

कोणीय 5+ के लिए:

import { Observable } from 'rxjs/Observable'; कार्य करना चाहिए। पर्यवेक्षक पैकेज को आयात से मेल खाना चाहिए और import { Observer } from 'rxjs/Observer'; आयात करना चाहिए import { Observer } from 'rxjs/Observer'; यदि आप पर्यवेक्षकों का उपयोग कर रहे हैं

import {<something>} from 'rxjs'; एक बड़ा आयात करता है इसलिए इससे बचना बेहतर है।


पैचिंग मेरे लिए काम नहीं कर रही थी, जो भी कारण हो, इसलिए मुझे इस पद्धति का सहारा लेना पड़ा:

import { of } from 'rxjs/observable/of'

// ...

return of(res)

मुझे आज यह समस्या थी। मैं निर्भरता को लोड करने के लिए 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' }
...
}

जिस तरह से सिस्टमज ने पुस्तकालय को मेरी समस्या तय की है, उसमें यह थोड़ा बदलाव।


मेरी मूर्खतापूर्ण गलती यह थी कि मैं अवलोकन योग्य होने पर जोड़ना /add भूल गया।

था:

import { Observable } from 'rxjs/Observable';
import 'rxjs/observable/of';

वास्तव में, जो फ़ाइल के ठीक ठीक rxjs/observable/of जो वास्तव में मौजूद है।

होना चाहिए:

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';

मैं 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 में (/) कार्यक्षमता को स्थानांतरित / बदल सकते हैं


यदि आप Angular 6/7 का उपयोग कर रहे हैं

import { of } from 'rxjs';

और फिर कॉल करने के बजाय

Observable.of(res);

महज प्रयोग करें

of(res);

वास्तव में मैं आयात गड़बड़ है। RxJS के नवीनतम संस्करण में हम इसे इस तरह आयात कर सकते हैं:

import 'rxjs/add/observable/of';

हालांकि यह बिल्कुल अजीब लगता है, लेकिन मेरे साथ यह 'ओ' के आयात पथ में 'ओ' को कैपिटल करने के लिए मायने रखता है import {Observable} from 'rxjs/Observable । यदि मैं rxjs/observable से rxjs/observable आयात करता हूं, तो observable_1.Observable.of is not a function साथ त्रुटि संदेश observable_1.Observable.of is not a function । अजीब लेकिन मुझे उम्मीद है कि यह दूसरों की मदद करता है।


आरएक्सजेएस 6

RxJS लाइब्रेरी के संस्करण 6 में अपग्रेड करते समय और निम्नलिखित कोड rxjs-compat पैकेज का उपयोग न करें

import 'rxjs/add/observable/of';   
  // ...
  return Observable.of(res);

में बदलना होगा

import { of } from 'rxjs';
  // ...
  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);
    });

import 'rxjs/add/observable/of';

rxjs -ोहैक्टर की आवश्यकता दर्शाता है

require("rxjs-compat/add/observable/of");

मेरे पास यह स्थापित नहीं था। द्वारा स्थापित किया गया

npm install rxjs-compat --save-dev

और पुनर्जन्म ने मेरा मुद्दा तय कर दिया।





rxjs