Questions tagged «rxjs»

JavaScript的响应式扩展(RxJS)是一组库,用于使用可观察的集合和Array Extras样式组成来组成异步和基于事件的程序。

4
不建议使用订阅:使用观察者而不是错误回调
当我运行lint时,它说: subscribe is deprecated: Use an observer instead of an error callback 代码(来自带有angular-cli的angular 7应用): this.userService.updateUser(data).pipe( tap(() => {bla bla bla}) ).subscribe( this.handleUpdateResponse.bind(this), this.handleError.bind(this) ); 不确切地知道我应该使用什么以及如何使用... 谢谢!

10
如何从内部具有Observable订阅的函数返回值?
我不知道如何从Observable中提取值以由存在Observable的函数返回。我只需要从中返回一个值,别无其他。 当前版本有效 function getValueFromObservable() { this.store.subscribe( (data:any) => { console.log(data) } ) } getValueFromObservable() 我需要这个工作,函数返回值,然后: function getValueFromObservable() { this.store.subscribe( (data:any) => { return data } ) } console.log(getValueFromObservable()) 我在这里做错了什么?

1
使用TypeScript从Angular2中的http数据链接RxJS Observables
在过去四年中愉快地使用AngularJS 1. *之后,我目前正在尝试自学Angular2和TypeScript!我必须承认我很讨厌它,但是我确定我的尤里卡时刻就在眼前。。。无论如何,我已经在虚拟应用程序中编写了一项服务,该服务将从我编写的提供JSON的电话后端获取http数据。 import {Injectable} from 'angular2/core'; import {Http, Headers, Response} from 'angular2/http'; import {Observable} from 'rxjs'; @Injectable() export class UserData { constructor(public http: Http) { } getUserStatus(): any { var headers = new Headers(); headers.append('Content-Type', 'application/json'); return this.http.get('/restservice/userstatus', {headers: headers}) .map((data: any) => data.json()) .catch(this.handleError); } getUserInfo(): any { …

3
如何从RxJS映射运算符引发错误(角度)
我想根据条件从我的可观察的地图运算符中引发错误。例如,如果未收到正确的API数据。请参见以下代码: private userAuthenticate( email: string, password: string ) { return this.httpPost(`${this.baseApiUrl}/auth?format=json&provider=login`, {userName: email, password: password}) .map( res => { if ( res.bearerToken ) { return this.saveJwt(res.bearerToken); } else { // THIS DOESN'T THROW ERROR -------------------- return Observable.throw('Valid token not returned'); } }) .catch( err => Observable.throw(this.logError(err) ) .finally( () => …

10
为什么我们需要使用flatMap?
我开始使用RxJS,但我不明白为什么在此示例中我们需要使用类似flatMapor 的函数concatAll;数组的数组在哪里? var requestStream = Rx.Observable.just('https://api.github.com/users'); var responseMetastream = requestStream .flatMap(function(requestUrl) { return Rx.Observable.fromPromise(jQuery.getJSON(requestUrl)); }); responseMetastream.subscribe(url => {console.log(url)}) 如果有人可以直观地解释正在发生的事情,那将非常有帮助。
92 javascript  rxjs 

4
将可观察对象中的数组与ngFor和Async Pipe Angular 2一起使用
我试图了解如何在Angular 2中使用Observables。我有此服务: import {Injectable, EventEmitter, ViewChild} from '@angular/core'; import {Observable} from "rxjs/Observable"; import {Subject} from "rxjs/Subject"; import {BehaviorSubject} from "rxjs/Rx"; import {Availabilities} from './availabilities-interface' @Injectable() export class AppointmentChoiceStore { public _appointmentChoices: BehaviorSubject<Availabilities> = new BehaviorSubject<Availabilities>({"availabilities": [''], "length": 0}) constructor() {} getAppointments() { return this.asObservable(this._appointmentChoices) } asObservable(subject: Subject<any>) { return new …

19
rxjs / Subject.d.ts错误:类'Subject <T>'错误地扩展了基类'Observable <T>'
我从本教程中提取了示例模板代码,并按照以下两个步骤进行了入门- npm install // worked fine and created node_modules folder with all dependencies npm start //失败,并出现以下错误- node_modules/rxjs/Subject.d.ts(16,22): error TS2415: Class 'Subject&lt;T&gt;' incorrectly extends base class 'Observable&lt;T&gt;'. Types of property 'lift' are incompatible. Type '&lt;T, R&gt;(operator: Operator&lt;T, R&gt;) =&gt; Observable&lt;T&gt;' is not assignable to type '&lt;R&gt;(operator: Operator&lt;T, R&gt;) =&gt; Observable&lt;R&gt;'. Type …

4
Promise.all与RxJS Observables的行为?
在Angular 1.x中,有时我需要发出多个http请求并对所有响应进行处理。我将所有的承诺都放在一个数组中并调用Promise.all(promises).then(function (results) {...})。 Angular 2最佳实践似乎指向使用RxJSObservable代替http请求中的Promise 。如果我从http请求创建了两个或多个不同的Observable,那么是否有等效于的Promise.all()?

10
如何使一个可观察序列在发射之前先等待另一个完成?
说我有一个Observable,像这样: var one = someObservable.take(1); one.subscribe(function(){ /* do something */ }); 然后,我有第二个Observable: var two = someOtherObservable.take(1); 现在,我想这样subscribe()做two,但是我想确保one在two解雇该订阅者之前已完成该操作。 我可以使用哪种缓冲方法two使第二个等待第一个完成? 我想我要暂停two直到one完成。



10
令牌刷新后Angular 4拦截器重试请求
嗨,我正在尝试弄清楚如何实现新的角度拦截器并401 unauthorized通过刷新令牌并重试请求来处理错误。这是我一直遵循的指南:https : //ryanchenkie.com/angular-authentication-using-the-http-client-and-http-interceptors 我已经成功地缓存了失败的请求,并且可以刷新令牌,但是我不知道如何重新发送以前失败的请求。我也想使它与我当前使用的解析器一起使用。 令牌拦截器 return next.handle( request ).do(( event: HttpEvent&lt;any&gt; ) =&gt; { if ( event instanceof HttpResponse ) { // do stuff with response if you want } }, ( err: any ) =&gt; { if ( err instanceof HttpErrorResponse ) { if ( err.status === 401 …

8
RxJS序列等效于promise.then()吗?
我过去常常以有前途的方式进行开发,现在我转向RxJS。RxJS的文档没有提供关于如何从承诺链转到观察者序列的非常清晰的示例。 例如,我通常会写多个步骤的Promise链,例如 // a function that returns a promise getPromise() .then(function(result) { // do something }) .then(function(result) { // do something }) .then(function(result) { // do something }) .catch(function(err) { // handle error }); 我应该如何用RxJS样式重写此Promise链?
83 javascript  rxjs 

4
孩子在Angular 2中收听父事件
在Angular文档中,有一个关于侦听父母的孩子事件的主题。没关系。但是我的目的是相反的!在我的应用程序中,有一个“ admin.component”保存着管理页面的布局视图(侧边栏菜单,任务栏,状态等)。在此父组件中,我配置了路由器系统以在管理员的其他页面之间更改主视图。问题是要在更改后保存内容,用户单击任务栏上的“保存”按钮(位于admin.component中),并且子组件必须侦听该click事件以执行保存人员。

8
如何在Angular2中取消订阅
如何在Angular2中取消订阅?RxJS似乎有一个dispose方法,但是我不知道如何访问它。所以我有访问EventEmitter并订阅它的代码,如下所示: var mySubscription = someEventEmitter.subscribe( (val) =&gt; { console.log('Received:', val); }, (err) =&gt; { console.log('Received error:', err); }, () =&gt; { console.log('Completed'); } ); 如何使用mySubscription取消订阅?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.