अब जब हमारे पास "लेटेबल" ऑपरेटर हैं, तो हमें एक बनाने के बारे में कैसे जाना चाहिए Observable
दूसरे से?
जब मैं करने की कोशिश करता हूं:
import {Observable} from "rxjs/Observable"
const source = Observable.from(someOtherStream)
मुझे त्रुटि मिलती है Observable.from is not a function
, जो समझ में आता है, क्योंकि from
अब कुछ और है जिसे अलग से आयात करने की आवश्यकता है।
मैं नहीं करना चाहता हूँ
import "rxjs/add/observable/from"
अब प्रोटोटाइप समस्याओं के कारण।
मैं क्या कर रहा था:
import { Observable } from "rxjs/Observable"
import { from } from "rxjs/observable/from"
const myNewStream = from.call(
Observable,
someOtherStream
)
लेकिन यह वास्तव में मुझे किसी कारण के लिए "हैकी" लगता है। क्या किसी के पास इसके बारे में जाने का कोई बेहतर तरीका है?
उत्तर:
उत्तर № 1 के लिए 4लेटेबल्स पीछे हैं rxjs/operators
यहां पर लिखा है.
के लिये from
आप पर्यवेक्षण आयात किए बिना इसे आयात करने में सक्षम होना चाहिए।
import { from } from "rxjs/observable/from";
const prom = new Promise(res => setTimeout(
() => res("promise"), 3000
));
from(prom).subscribe(x => console.log(x));
का उपयोग करते हुए from
इस तरह से आप की अनुमति देता है pipe()
लेटेबल ऑपरेटरों के लिए।
import { from } from "rxjs/observable/from";
import { map } from "rxjs/operators/map";
const prom = new Promise(res => setTimeout(
() => res("promise"), 3000
));
from(prom).pipe(
map(x => x.split("").reverse().join(""))
).subscribe(x => console.log(x));
जवाब के लिए 0 № 2
मुझे लगता है कि यह गलतफहमी है from
कर देता है। यह सिर्फ एक ऐसा कार्य है जो "धारा" (वह "पर्यवेक्षक, वादा, सरणी, ...) लेता है और इससे एक पर्यवेक्षण बनाता है।
इसका मतलब है कि आप इसे किसी अन्य फ़ंक्शन की तरह उपयोग करते हैं:
import { from } from "rxjs/observable/from"
from(someOtherStream).pipe(...).subscribe(...)