rxjs相关内容
我有以下对象: 类问题{idQuestion:字符串;问题:字符串;类型问题:字符串;}类答案{idAnswer:字符串;idQuestion:字符串;答案:字符串;}类选项{idOption:字符串;idQuestion:字符串;选项;} 我想填充以下对象: class QuestionOptionsAnswer {问题:问题;答:答;选项:选项[];} 目前,我对每种对象都有一个服务,
..
我在后端(node.js)中有一个服务,我正在通过 angular 订阅它http 客户端服务,它工作正常.对于我的申请,有不止一个用户.所以其他一些用户可以更改数据库数据.所以每当数据库数据发生变化时,我都会立即订阅它们. 这样所有用户都可以查看一致的数据,即与数据库数据同步的数据.我在角度服务中使用 RXJS Observables. 解决方案 在回答之前,请注意满足您的要求说起来容易
..
我正在将 Observable 的所有事件收集到一个 data 数组: const obs$ = Rx.Observable.间隔(500).take(4);让数据 = [];const start = performance.now();obs$.subscribe(值 =>{数据推送({时间:performance.now() - 开始,数据:值});},() =>{},() =>{co
..
我尝试使用 subscription.unsubsribe 取消挂起的 http 请求,如下所示: getAgentList(pageNumber: number, filter: string): any {让 requestUrl: string = 'api/service/agents_search?ACCT='+this.accountId;如果(this.subscription){
..
我想在 HTTP 调用超时事件发生时向用户提供反馈. 我试过了: 返回 this._http.post(apiUrl + 'Search/Everything', params, {withCredentials: true, headers: this.headers}).timeout(5000, this._feedbackService.error("自定义错误信息")).map(
..
我使用的 API 只返回有限数量的结果,比如 100. 我想重复一个查询,直到返回结果集为
..
这里在 ngrx 中获取当前状态的解决方案.这个例子很简单——你只需要使用take(1).但是在 take 的 rxjs 文档中它说: 返回指定数量的从一个开始的连续元素可观察序列 为什么取第一个值会得到当前状态(即最后一个值)? 此外,我在使用 Subject 进行单元测试时无法模拟这种行为. 解决方案 ngrx-store 是 length=1 的 ReplaySub
..
我有一个发出动态请求的 observable. 例如 getFlowers(params?: any): Observable{返回 this.http.get(`http://flowers.com/flowers`,{ 参数})} 现在,上面的函数返回新的 http 可观察到的每个函数调用.我想以某种方式实现返回相同的可观察实例(尽管进行了不同的 http 调用),以便我可以使用 s
..
我收到一个 HTTP 响应,如果一切顺利,其中包含一个编码为 JSON 的数组. 我想获取这个数组,过滤掉一些项目,并将传递的项目作为事件处理. 我目前所做的是: 返回 this._http.get(url).map((res:Response) => res.json()).map((data:any) => {if (!Array.isArray(data) || data.len
..
我已经阅读了 Rx.js repeat 文档以试图找出答案如何根据从 API 收到的响应继续调用 api.我正在调用一个 API,它一次只能发回 2k 条记录.API 会发回一个值供我发送,以便我可以继续接收记录,直到它们返回完成值. 所以流程如下: 发出一个 GET 请求一个查询参数 reqMode='': 使用包含 reqMode 和 value 或 done 的最后一个数组检索
..
我有 3 个如下所示的可观察数组. persons = [{"firstName":"约翰","lastName":"公共","locationID":"1",“部门ID":“100"},{"firstName":"sam","lastName":"史密斯","locationID":"2",“部门ID":“101"}]部门 = [{“部门ID":“100",“名称":“开发"},{“部门ID"
..
我有一个使用 @angular/http 从 API 加载数据的服务.我想使用此数据为我的 Components 创建检索到的数据的投影. 因此我写了以下代码: getById(id: string) {返回 this.http.get(`https://my-api.io/${id}`).map(response => response.json()).map(合同=>contract.
..
我有三个承诺,Rest 请求返回数据列表. 第三个有对前两个列表的引用(id),所以当我拥有所有数据时,我想将这些 id 映射到相应的名称. 映射不是问题,我只是使用 Lodash. 但问题是在开始计算这个映射之前等待三个承诺解决. 我想出使用 concat(): Rx.Observable.concat(p1, p2, p3).subscribe(功能 onNext(列表){//将
..
根据 RxJS 5 MIGRATION.md 看起来 shareReplay() 已被删除. 为什么? .publishReplay(1).refCount() 是否忠实地复制了行为?基本上,我需要向任何新订阅者重放最新的单个数据集. 解决方案 简短的回答:引用布莱什爵士的话: RxJS 5 试图解决的问题是 ConnectableObservables应该是“可重新连接的"
..
我被困在嵌套的可观察地狱中,可以用手做. 我有以下代码块 return this.findUser(term).map( users => {return users.map( user => this.getLastLogin(user.user_id).map( last_login => {user.last_login = last_login;返回用户;}));}); find
..
我已经阅读了 throttleTime 文档,但我不明白完全操作符. 我知道 throttleTime(1000) 是如何工作的.事件到达后,它将跳过所有后续事件 1 秒,然后再次开始此过程. 我难以理解的是 ThrottleConfig 究竟是如何工作的,它是操作符的第三个参数. throttleTime(持续时间:数量,调度程序:SchedulerLike = 异步,config
..
我试图让 RxJs 在我的流中循环一个 Observable 直到它处于某种状态,然后让流继续.具体来说,我正在将同步 do/while 循环转换为 RxJs,但我认为相同的答案也可用于 for 或 while 循环. 我以为我可以为此使用 doWhile(),但条件函数似乎无权访问流中的项目,这对我来说似乎违背了目的. 我不完全确定我想要的正确的反应性术语是什么,但这里有一个我想要的
..
我有一个组件,它在呈现虚拟列表中的最后一个项目时触发 onScrollEnd 事件.此事件将执行新的 API 请求以获取下一页,并使用 scan 运算符将它们与之前的结果合并. 这个组件还有一个搜索字段,它会触发一个 onSearch 事件. 如何在触发搜索事件时清除 scan 运算符的先前累积结果?还是我需要在这里重构我的逻辑? const loading$ = new Behav
..
我使用的是 angular 2,它是 http 组件. 我想调用一个将返回元素列表的 REST API.该列表的大小限制为 100 个条目.如果有更多项目,将在响应中设置 hasMore 标志.然后,您必须使用参数 page=2 再次调用 API.最好有一个 Observable,同时有两个服务器响应.我的代码看起来像这样: call({page: 1}).map(res => res.j
..
我想知道为什么 jest.useFakeTimers 使用 setTimeout 而不是 RxJs 的延迟运算符: jest.useFakeTimers();从 'rxjs/Observable' 导入 {Observable};导入'rxjs';描述('计时器',()=> {it('应该同步解决 setTimeout', () => {const 间谍 = jest.fn();设置超时(间谍,
..