คำถามติดแท็ก rxjs

Reactive Extensions สำหรับ JavaScript (RxJS) คือชุดของไลบรารีสำหรับการเขียนโปรแกรมแบบอะซิงโครนัสและตามเหตุการณ์โดยใช้คอลเล็กชันที่สังเกตได้และองค์ประกอบสไตล์ Array Extras

28
สัญญาและของรางวัลต่างกันอย่างไร
ความแตกต่างระหว่างPromiseและObservableในเชิงมุมคืออะไร? ตัวอย่างในแต่ละกรณีจะเป็นประโยชน์ในการทำความเข้าใจทั้งสองกรณี ในสถานการณ์ใดที่เราสามารถใช้แต่ละกรณี

21
Angular / RxJs ฉันควรยกเลิกการสมัครเมื่อ
ฉันควรจัดเก็บSubscriptionอินสแตนซ์และเรียกใช้unsubscribe()ในช่วงชีวิตของ NgOnDestroy เมื่อใดและเมื่อใดที่ฉันจะเพิกเฉยได้ การบันทึกการสมัครสมาชิกทั้งหมดทำให้เกิดความยุ่งเหยิงในรหัสส่วนประกอบ คู่มือไคลเอนต์ HTTPละเว้นการสมัครสมาชิกดังนี้: getHeroes() { this.heroService.getHeroes() .subscribe( heroes => this.heroes = heroes, error => this.errorMessage = <any>error); } ในขณะเดียวกันคำแนะนำเส้นทางและการนำทางบอกว่า: ในที่สุดเราจะนำทางไปที่อื่น เราเตอร์จะลบส่วนประกอบนี้ออกจาก DOM และทำลายมัน เราต้องทำความสะอาดตัวเองก่อนที่จะเกิดขึ้น โดยเฉพาะเราต้องยกเลิกการสมัครก่อนที่ Angular จะทำลายส่วนประกอบ การไม่ทำเช่นนั้นอาจทำให้หน่วยความจำรั่ว เรายกเลิกการเป็นสมาชิกของเราObservableในngOnDestroyวิธีการ private sub: any; ngOnInit() { this.sub = this.route.params.subscribe(params => { let id = +params['id']; // (+) converts string …

9
BehaviorSubject vs Observable?
ฉันกำลังมองหาในรูปแบบเชิงมุม RxJs และฉันไม่เข้าใจความแตกต่างระหว่างที่และBehaviorSubjectObservable จากความเข้าใจของฉัน a BehaviorSubjectคือค่าที่สามารถเปลี่ยนแปลงได้ตลอดเวลา (สามารถสมัครสมาชิกและสมาชิกสามารถรับผลลัพธ์ที่อัปเดต) Observableนี้น่าจะเป็นวัตถุประสงค์เดียวกันที่แน่นอนของ เมื่อไหร่ที่คุณจะใช้Observablevs a BehaviorSubject? มีประโยชน์ในการใช้BehaviorSubjectมากกว่าObservableหรือในทางกลับกัน?

19
HTTP เชิงมุม GET พร้อมข้อผิดพลาด TypeScript http.get (…) .map ไม่ใช่ฟังก์ชันใน [null]
ฉันมีปัญหากับ HTTP ในเชิงมุม ผมแค่อยากจะรายการและแสดงในมุมมองGETJSON ระดับบริการ import {Injectable} from "angular2/core"; import {Hall} from "./hall"; import {Http} from "angular2/http"; @Injectable() export class HallService { public http:Http; public static PATH:string = 'app/backend/' constructor(http:Http) { this.http=http; } getHalls() { return this.http.get(HallService.PATH + 'hall.json').map((res:Response) => res.json()); } } และในHallListComponentฉันโทรgetHallsวิธีจากบริการ: export class HallListComponent implements OnInit { …
334 angular  rxjs 

21
วิธีที่ถูกต้องในการแบ่งปันผลของการโทรเครือข่าย Angular Http ใน RxJs 5 คืออะไร?
โดยการใช้ Http เราจะเรียกวิธีที่ใช้ในการโทรผ่านเครือข่ายและส่งกลับ http ที่สังเกตได้: getCustomer() { return this.http.get('/someUrl').map(res => res.json()); } หากเราใช้สิ่งนี้สามารถสังเกตได้และเพิ่มสมาชิกหลายคน: let network$ = getCustomer(); let subscriber1 = network$.subscribe(...); let subscriber2 = network$.subscribe(...); สิ่งที่เราต้องการจะทำคือมั่นใจได้ว่านี่จะไม่ทำให้เกิดคำขอเครือข่ายหลาย สิ่งนี้อาจดูเหมือนเป็นสถานการณ์ที่ผิดปกติ แต่จริง ๆ แล้วเป็นเรื่องธรรมดา: ตัวอย่างเช่นหากผู้โทรสมัครรับข้อมูลที่สังเกตได้เพื่อแสดงข้อความแสดงข้อผิดพลาดและส่งผ่านไปยังเทมเพลตโดยใช้ async pipe เรามีสมาชิกสองคนแล้ว วิธีที่ถูกต้องในการทำเช่นนั้นใน RxJs 5 คืออะไร? คือนี่ดูเหมือนจะทำงานได้ดี: getCustomer() { return this.http.get('/someUrl').map(res => res.json()).share(); } แต่นี่เป็นวิธีที่ใช้ในการทำสิ่งนี้ใน RxJs 5 หรือว่าเราควรทำอย่างอื่นแทน? …


6
แปลงสัญญาเป็น Observable
ฉันพยายามห่อหัวของฉันไว้กับสิ่งที่สังเกตได้ ฉันชอบวิธีที่สังเกตได้แก้ปัญหาการพัฒนาและการอ่านได้ ขณะที่ฉันอ่านมีประโยชน์มากมาย สิ่งที่สังเกตได้บน HTTP และการรวบรวมดูเหมือนจะตรงไปตรงมา ฉันจะแปลงบางอย่างเช่นนี้เป็นรูปแบบที่สังเกตได้ได้อย่างไร นี่คือจากองค์ประกอบบริการของฉันเพื่อให้การตรวจสอบ ฉันต้องการให้ทำงานเหมือนบริการ HTTP อื่น ๆ ใน Angular2 - พร้อมรองรับข้อมูลข้อผิดพลาดและเครื่องมือจัดการความสมบูรณ์ firebase.auth().createUserWithEmailAndPassword(email, password) .then(function(firebaseUser) { // do something to update your UI component // pass user object to UI component }) .catch(function(error) { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; …

9
จำเป็นหรือไม่ที่จะยกเลิกการเป็นสมาชิกจากสิ่งที่สังเกตได้ที่สร้างโดยวิธี Http?
คุณต้องการยกเลิกการสมัครจากการโทร http ของ Angular 2 เพื่อป้องกันการรั่วไหลของหน่วยความจำหรือไม่? fetchFilm(index) { var sub = this._http.get(`http://example.com`) .map(result => result.json()) .map(json => { dispatch(this.receiveFilm(json)); }) .subscribe(e=>sub.unsubscribe()); ...

10
จะรับค่าปัจจุบันของ RxJS Subject หรือ Observable ได้อย่างไร
ฉันมีบริการ Angular 2: import {Storage} from './storage'; import {Injectable} from 'angular2/core'; import {Subject} from 'rxjs/Subject'; @Injectable() export class SessionStorage extends Storage { private _isLoggedInSource = new Subject<boolean>(); isLoggedIn = this._isLoggedInSource.asObservable(); constructor() { super('session'); } setIsLoggedIn(value: boolean) { this.setItem('_isLoggedIn', value, () => { this._isLoggedInSource.next(value); }); } } ทุกอย่างใช้งานได้ดี แต่ฉันมีองค์ประกอบอื่นที่ไม่จำเป็นต้องสมัครสมาชิกเพียงแค่ต้องการรับค่าปัจจุบันของ isLoggedIn ณ …
206 javascript  angular  rxjs 

16
Angular 2 beta.17: คุณสมบัติ 'map' ไม่มีอยู่ในประเภท 'Observable <Response>'
ฉันเพิ่งอัพเกรดจาก Angular 2 beta16เป็นbeta17ซึ่งจำเป็นต้องใช้ rxjs 5.0.0-beta.6 (เปลี่ยนที่นี่: https://github.com/angular/angular/angular/blob/master/CHANGELOG.md#200-beta17-2016-04-28 ) ในรุ่นเบต้า 16 ทั้งหมดนั้นทำงานได้ดีเกี่ยวกับฟังก์ชันการสังเกต / แผนที่ ข้อผิดพลาดต่อไปนี้ปรากฏขึ้นหลังจากที่ฉันอัพเกรดและเกิดขึ้นเมื่อ typescript พยายามทำการ transpile: คุณสมบัติ 'map' ไม่มีอยู่ในประเภท 'Observable' (ที่ใดก็ตามที่ฉันใช้แผนที่พร้อมกับสังเกตได้) c: /path/node_modules/rxjs/add/operator/map.d.ts (2,16): ข้อผิดพลาด TS2435: โมดูล Ambient ไม่สามารถซ้อนในโมดูลหรือเนมสเปซอื่นได้ c: /path/node_modules/rxjs/add/operator/map.d.ts (2,16): ข้อผิดพลาด TS2436: การประกาศโมดูล Ambient ไม่สามารถระบุชื่อโมดูลสัมพันธ์ได้ ฉันได้เห็นคำถาม / คำตอบนี้ แต่ไม่ได้แก้ปัญหา: ข้อผิดพลาดที่สังเกตได้กับ Angular2 beta.12 และ RxJs 5 beta.3 …
195 typescript  angular  rxjs 

19
Observable.of ไม่ใช่ฟังก์ชั่น
ฉันมีปัญหากับObservable.ofฟังก์ชั่นการนำเข้าในโครงการของฉัน Intellij ของฉันเห็นทุกสิ่ง ในรหัสของฉันฉันมี: import {Observable} from 'rxjs/Observable'; และในรหัสของฉันฉันใช้มันเหมือนที่: return Observable.of(res); ความคิดใด ๆ
192 angular  rxjs 

6
สร้างการสมัครสมาชิกครั้งเดียว
ฉันต้องการสร้างการสมัครรับข้อมูลObservableที่จะถูกกำจัดทันทีเมื่อมีการโทรครั้งแรก มีบางอย่างเช่น: observable.subscribeOnce(func); กรณีการใช้งานของฉันฉันกำลังสร้างการสมัครสมาชิกในตัวจัดการเส้นทางด่วนและการสมัครจะถูกเรียกหลายครั้งต่อคำขอ
182 rxjs 

3
Angular2 http.get (), map (), สมัครสมาชิก () และรูปแบบที่สังเกตได้ - ความเข้าใจพื้นฐาน
ตอนนี้ฉันมีหน้าเริ่มต้นที่ฉันมีสามลิงก์ เมื่อคุณคลิกที่ลิงก์ 'เพื่อน' ครั้งล่าสุดคอมโพเนนต์เพื่อนที่เหมาะสมจะได้รับการเริ่มต้น ในนั้นฉันต้องการดึงข้อมูล / รับรายชื่อเพื่อนของฉันที่เข้าสู่ไฟล์ friends.json จนถึงตอนนี้ทุกอย่างทำงานได้ดี แต่ฉันยังคงเป็นมือใหม่สำหรับบริการ HTTP ของ angular2 โดยใช้แนวคิดแผนที่ของ RxJs ที่สังเกตได้ ฉันพยายามที่จะเข้าใจและอ่านบทความไม่กี่ แต่จนกระทั่งฉันได้ทำงานจริงฉันจะไม่เข้าใจแนวคิดเหล่านั้นอย่างถูกต้อง ที่นี่ฉันได้ทำ plnkr ซึ่งทำงานยกเว้นงานที่เกี่ยวข้องกับ HTTP Plnkr myfriends.ts import {Component,View,CORE_DIRECTIVES} from 'angular2/core'; import {Http, Response,HTTP_PROVIDERS} from 'angular2/http'; import 'rxjs/Rx'; @Component({ template: ` &lt;h1&gt;My Friends&lt;/h1&gt; &lt;ul&gt; &lt;li *ngFor="#frnd of result"&gt; {{frnd.name}} is {{frnd.age}} years old. …
170 http  angular  rxjs 

11
ส่งคืน Observable ที่ว่างเปล่า
ฟังก์ชั่นmore()ควรจะส่งกลับObservableจากการขอ export class Collection{ public more = (): Observable&lt;Response&gt; =&gt; { if (this.hasMore()) { return this.fetch(); } else{ // return empty observable } } private fetch = (): Observable&lt;Response&gt; =&gt; { return this.http.get('some-url').map( (res) =&gt; { return res.json(); } ); } } ในกรณีนี้ฉันสามารถร้องขอได้ถ้าhasMore()เป็นจริงเท่านั้นฉันได้รับข้อผิดพลาดจากsubscribe()ฟังก์ชันsubscribe is not definedฉันจะคืนค่าว่างที่สังเกตได้อย่างไร this.collection.more().subscribe( (res) =&gt;{ console.log(res); …

14
Angular -“ ไม่มีสมาชิกที่ส่งออก 'สังเกตได้””
รหัสตัวพิมพ์: import { Injectable } from '@angular/core'; import { Observable } from 'rxjs/Observable'; import { of } from 'rxjs/observable/of'; import { Hero } from './hero'; import { HEROES } from './mock-heroes'; @Injectable({ providedIn: 'root' }) export class HeroService { constructor() { } getHeroes(): Observable&lt;Hero[]&gt; { return of(HEROES); } } ข้อมูลข้อผิดพลาด: …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.