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

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

6
'ของ' vs 'จาก' โอเปอเรเตอร์
ข้อแตกต่างระหว่างObservable.ofและObservable.fromรูปแบบอาร์กิวเมนต์เท่านั้นหรือไม่ ชอบFunction.prototype.callและFunction.prototype.apply? Observable.of(1,2,3).subscribe(() => {}) Observable.from([1,2,3]).subscribe(() => {})
153 rxjs 

21
ฉันจะปิดดร็อปดาวน์เมื่อคลิกภายนอกได้อย่างไร
ฉันต้องการปิดเมนูดร็อปดาวน์ของฉันเมื่อผู้ใช้คลิกที่ใดก็ได้นอกเหนือจากดรอปดาวน์นั้นและฉันต้องการจะทำเช่นนั้นกับ Angular2 และกับ Angular2 "วิธี" ... ฉันติดตั้งโซลูชันแล้ว แต่ฉันไม่รู้สึกมั่นใจเลย ฉันคิดว่าต้องมีวิธีที่ง่ายที่สุดในการบรรลุผลลัพธ์เดียวกันดังนั้นหากคุณมีความคิดใด ๆ ... มาคุยกัน :)! นี่คือการดำเนินการของฉัน: องค์ประกอบแบบเลื่อนลง: นี่เป็นส่วนประกอบสำหรับดรอปดาวน์ของฉัน: ทุกครั้งที่ส่วนนี้มันตั้งค่าให้สามารถมองเห็นได้ (ตัวอย่างเช่นเมื่อผู้ใช้คลิกที่ปุ่มเพื่อแสดง) ก็สมัครเป็นสมาชิก "ทั่วโลก" rxjs เรื่องuserMenuเก็บไว้ภายในSubjectsService และทุกครั้งที่มันถูกซ่อนไว้ ทุกการคลิกที่ใดก็ได้ภายในเทมเพลตของส่วนประกอบนี้จะเรียกใช้เมธอดonClick ()ซึ่งเพิ่งหยุดเหตุการณ์ที่เดือดดาลไปด้านบน (และส่วนประกอบแอปพลิเคชัน) นี่คือรหัส export class UserMenuComponent { _isVisible: boolean = false; _subscriptions: Subscription<any> = null; constructor(public subjects: SubjectsService) { } onClick(event) { event.stopPropagation(); } set isVisible(v) …

14
node_modules / rxjs / internal / types.d.ts (81,44): ข้อผิดพลาด TS1005: ';' ข้อผิดพลาดที่คาดไว้หลังจากการติดตั้ง Angular 6
ฉันพบข้อผิดพลาด node_modules / rxjs / internal / types.d.ts (81,44): ข้อผิดพลาด TS1005: ';' ที่คาดหวัง หลังการติดตั้ง Angular 6 ตรวจสอบข้อผิดพลาด: ERROR in node_modules/rxjs/internal/types.d.ts(81,44): error TS1005: ';' expected. node_modules/rxjs/internal/types.d.ts(81,74): error TS1005: ';' expected. node_modules/rxjs/internal/types.d.ts(81,77): error TS1109: Expression expected.

2
RxJS: ฉันจะ“ อัปเดตด้วยตนเอง” แบบสังเกตได้อย่างไร
ฉันคิดว่าฉันต้องเข้าใจบางสิ่งบางอย่างพื้นฐานเพราะในใจของฉันนี่ควรจะเป็นกรณีพื้นฐานที่สุดสำหรับการสังเกต แต่สำหรับชีวิตของฉันฉันไม่สามารถหาวิธีที่จะทำจากเอกสาร โดยทั่วไปฉันต้องการทำสิ่งนี้: // create a dummy observable, which I would update manually var eventObservable = rx.Observable.create(function(observer){}); var observer = eventObservable.subscribe( function(x){ console.log('next: ' + x); } ... var my_function = function(){ eventObservable.push('foo'); //'push' adds an event to the datastream, the observer gets it and prints // next: foo } …

5
รับ (1) vs แรก ()
ผมพบว่าการดำเนินการไม่กี่วินาทีที่ใช้AuthGuard take(1)ในโครงการของฉันฉันใช้first(). ทั้งสองอย่างทำงานเหมือนกันหรือไม่? import 'rxjs/add/operator/map'; import 'rxjs/add/operator/first'; import { Observable } from 'rxjs/Observable'; import { Injectable } from '@angular/core'; import { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'; import { AngularFire } from 'angularfire2'; @Injectable() export class AuthGuard implements CanActivate { constructor(private angularFire: AngularFire, private router: Router) { } canActivate(route: …

3
ไม่มีคุณสมบัติ 'catch' ในประเภท 'Observable <any>'
ในหน้าเอกสาร Angular 2 สำหรับการใช้บริการ Http มีตัวอย่าง getHeroes (): Observable&lt;Stuff[]&gt; { return this.http.get(this.url) .map(this.extractData) .catch(this.handleError); } ฉันโคลนโครงการangular2-webpack-starterและเพิ่มรหัสด้านบนด้วยตัวเอง ฉันนำเข้าObservableโดยใช้ import {Observable} from 'rxjs/Observable'; ฉันสมมติว่าObservableมีการนำเข้าคุณสมบัติเช่นกัน (ใช้.mapงานได้) มองไปที่การเปลี่ยนแปลงสำหรับ rxjs.beta-6 catchและไม่มีอะไรจะกล่าวถึงเกี่ยวกับ

6
Subject vs BehaviorSubject vs ReplaySubject ใน Angular
ฉันต้องการทำความเข้าใจ 3 สิ่งเหล่านี้: เรื่อง , เรื่องพฤติกรรมและReplay เรื่อง ฉันต้องการใช้มันและรู้ว่าเมื่อใดและทำไมประโยชน์ของการใช้คืออะไรและแม้ว่าฉันจะอ่านเอกสารดูบทแนะนำและค้นหาใน Google แล้ว แต่ฉันก็ไม่เข้าใจเรื่องนี้ แล้วจุดประสงค์ของพวกเขาคืออะไร? กรณีในโลกแห่งความเป็นจริงจะได้รับการชื่นชมมากที่สุดโดยไม่ต้องใช้รหัส ฉันต้องการคำอธิบายที่ชัดเจนไม่ใช่แค่ "a + b =&gt; c ที่คุณสมัครรับข้อมูล .... " ขอบคุณ

5
จะสร้าง Observable จากข้อมูลคงที่คล้ายกับ http one ใน Angular ได้อย่างไร
ฉันมีบริการที่มีวิธีการนี้: export class TestModelService { public testModel: TestModel; constructor( @Inject(Http) public http: Http) { } public fetchModel(uuid: string = undefined): Observable&lt;string&gt; { if(!uuid) { //return Observable of JSON.stringify(new TestModel()); } else { return this.http.get("http://localhost:8080/myapp/api/model/" + uuid) .map(res =&gt; res.text()); } } } ในตัวสร้างของคอมโพเนนต์ฉันสมัครสมาชิกดังนี้: export class MyComponent { testModel: TestModel; testModelService: …

5
Redux & RxJS มีความคล้ายคลึงกันหรือไม่
ฉันรู้ว่า Redux เป็น "การนำไปใช้งาน" ที่ดีกว่าของ Flux หรือดีกว่าที่บอกว่าเป็นการออกแบบใหม่เพื่อลดความซับซ้อนของสิ่งต่างๆ ฉันเคยได้ยินเกี่ยวกับการเขียนโปรแกรมปฏิกิริยา (RxJS) มามากมาย แต่ฉันยังไม่ได้เรียนรู้ คำถามของฉันคือ: มีจุดตัด (อะไรที่เหมือนกัน) ระหว่างเทคโนโลยีทั้งสองนี้หรือไม่? ... หรือแตกต่างกันโดยสิ้นเชิง?
113 javascript  rxjs  redux 

8
“ callback hell” คืออะไรและ RX แก้อย่างไรและทำไม?
ใครช่วยให้คำจำกัดความที่ชัดเจนพร้อมกับตัวอย่างง่ายๆที่อธิบายว่า "callback hell" คืออะไรสำหรับคนที่ไม่รู้จัก JavaScript และ node.js "ปัญหานรกเรียกกลับ" (ในการตั้งค่าแบบใด) เกิดขึ้นเมื่อใด ทำไมมันถึงเกิดขึ้น? "callback hell" เกี่ยวข้องกับการคำนวณแบบอะซิงโครนัสเสมอหรือไม่ หรือ "callback hell" สามารถเกิดขึ้นในแอปพลิเคชันเธรดเดียวได้หรือไม่? ฉันเข้าเรียนหลักสูตร Reactive ที่ Coursera และ Erik Meijer กล่าวในการบรรยายครั้งหนึ่งของเขาว่า RX ช่วยแก้ปัญหา "นรกเรียกกลับ" ได้ ฉันถามว่า "นรกเรียกกลับ" ในฟอรัม Coursera คืออะไร แต่ฉันไม่ได้รับคำตอบที่ชัดเจน หลังจากอธิบาย "callback hell" ในตัวอย่างง่ายๆคุณสามารถแสดงให้เห็นว่า RX แก้ปัญหา "callback hell" ในตัวอย่างง่ายๆนั้นได้อย่างไร

5
ฉันจะ `รอ 'บน Rx Observable ได้อย่างไร?
ฉันต้องการรอคอยสิ่งที่สังเกตเห็นได้เช่น const source = Rx.Observable.create(/* ... */) //... await source; ความพยายามที่ไร้เดียงสาส่งผลให้การรอคอยแก้ไขทันทีและไม่ปิดกั้นการดำเนินการ แก้ไข: รหัสเทียมสำหรับกรณีการใช้งานแบบเต็มของฉันคือ: if (condition) { await observable; } // a bunch of other code ฉันเข้าใจว่าฉันสามารถย้ายรหัสอื่นไปยังฟังก์ชันอื่นที่แยกจากกันและส่งไปยังการโทรกลับสมัครรับข้อมูลได้ แต่ฉันหวังว่าจะสามารถหลีกเลี่ยงสิ่งนั้นได้

5
ฟังก์ชัน pipe () ใน Angular คืออะไร
ไปป์เป็นตัวกรองสำหรับการแปลงข้อมูล (รูปแบบ) ในเทมเพลต ฉันเจอpipe()ฟังก์ชันดังต่อไปนี้ pipe()ฟังก์ชันนี้หมายความว่าอย่างไรในกรณีนี้? return this.http.get&lt;Hero&gt;(url) .pipe( tap(_ =&gt; this.log(`fetched hero id=${id}`)), catchError(this.handleError&lt;Hero&gt;(`getHero id=${id}`)) );

4
ท่อสำหรับ RxJS คืออะไร?
ฉันคิดว่าฉันมีแนวคิดพื้นฐาน แต่มีบางอย่างที่ไม่ชัดเจน โดยทั่วไปนี่คือวิธีที่ฉันใช้Observable: observable.subscribe(x =&gt; { }) หากฉันต้องการกรองข้อมูลฉันสามารถใช้สิ่งนี้: import { first, last, map, reduce, find, skipWhile } from 'rxjs/operators'; observable.pipe( map(x =&gt; {return x}), first() ).subscribe(x =&gt; { }) ฉันยังสามารถทำได้: import 'rxjs/add/operator/map'; import 'rxjs/add/operator/first'; observable.map(x =&gt; {return x}).first().subscribe(x =&gt; { }) ดังนั้นคำถามของฉันคือ: อะไรคือความแตกต่าง? หากไม่มีความแตกต่างทำไมฟังก์ชันจึงpipeมีอยู่? เหตุใดฟังก์ชันเหล่านี้จึงต้องการการนำเข้าที่แตกต่างกัน
110 angular  rxjs  rxjs5 

3
สังเกตได้ในที่สุดเมื่อสมัครสมาชิก
ตามartcle นี้ , onCompleteและonErrorฟังก์ชั่นของการsubscribeอยู่ร่วมกันอย่างเดียว ความหมายอย่างใดอย่างหนึ่งonErrorหรือonCompleteเหตุการณ์ต่างๆจะเริ่มขึ้นในsubscribeไฟล์. ฉันมีบล็อกลอจิกที่จำเป็นต้องดำเนินการไม่ว่าฉันจะได้รับข้อผิดพลาดหรือฉันทำข้อมูลให้เสร็จสมบูรณ์ ฉันมองหาบางอย่างเช่นfinallyใน pythonแต่สิ่งที่ฉันพบคือfinallyสิ่งที่ต้องแนบกับสิ่งที่สังเกตได้ที่ฉันสร้างขึ้น แต่ฉันต้องการใช้ตรรกะนั้นเฉพาะเมื่อฉันสมัครและหลังจากสตรีมสิ้นสุดลงไม่ว่าจะสำเร็จหรือมีข้อผิดพลาด ความคิดใด ๆ ?
106 javascript  rxjs  rxjs5 

5
Angular 4+ ngOnDestroy () ในการให้บริการ - ทำลายที่สังเกตได้
ในแอปพลิเคชันเชิงมุมเรามีngOnDestroy()ตะขอเกี่ยวกับวงจรชีวิตสำหรับส่วนประกอบ / คำสั่งและเราใช้ตะขอนี้เพื่อยกเลิกการเป็นสมาชิกสิ่งที่สังเกตได้ ฉันต้องการล้าง / ทำลายที่สังเกตได้ซึ่งสร้างขึ้นใน@injectable()บริการ ฉันเห็นบางกระทู้บอกว่าngOnDestroy()สามารถใช้ในบริการได้เช่นกัน แต่มันเป็นแนวทางปฏิบัติที่ดีและเป็นวิธีเดียวที่จะทำได้และเมื่อไหร่จะเรียก? ใครบางคนโปรดชี้แจง

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