rxjs5相关内容
我正在学习 angular,但我对这些可观察的、观察者和订阅感到困惑事物.所以请解释一下. 解决方案 这是一个简单的视觉效果,可以看出区别: 如上所示……Observable 是事件或数据流.它们通常从 Angular 方法返回,例如 http.get 和 myinputBox.valueChanges. 订阅“启动"可观察流.如果没有订阅(或异步管道),流将不会开始发出值.这
..
我让这个组件监听来自服务的消息.请注意,下面显示的每个 console.log() 语句至少被命中一次,所有内容都会被记录. 也就是说,除了“向数组添加消息"之外 - 不会被记录,但应该被记录! 这是组件: import {Component, OnInit, Inject} from '@angular/core';从“../../../../shared/services/events
..
我有一个 angular5 服务,它执行 HTTP 获取并返回特定类型,如下所示 public getProductByIDproductId: string): Observable{const headers = new HttpHeaders({ "Content-Type": "application/json" });const url = `${environment.product
..
我正在尝试映射 httpclient 的结果,我们需要使用 RxJs 的新导入来使 treeshaking 工作. 所以我找到了 2 张地图,但没有用... import { map } from 'rxjs/operator/map';从'rxjs/operators/map'导入{地图}; 我们需要删除的旧时尚方式 import 'rxjs/add/operator/map';
..
我有这个方法通过localstorage获取token,如果token不存在或过期,我会调用API来获取另一个token并存储到localstorage. 在这种情况下,我应该使用哪个地图,目前使用的是 mergeMap,还是其他方式来做到这一点? public doGetToken():Observable{return this.loadToken().pipe(//通过localst
..
我对在 angular 5 中使用 httpclient 感到困惑.我是 angular 的新手,只是按照官方的 angular 教程进行操作.我对 observables、promise、pipe 等不太了解.目前我正在提供处理所有 http 的服务方法.对于发布请求,我使用管道.下面是方法. create(model: any,URI) :Observable{返回 this.http.po
..
我正在尝试拦截 401 响应,在再次尝试请求之前发送刷新令牌请求(但具有不同的标头).除了 retryWhen 没有让我修改原始请求标头外,我让它工作.所以我一直在尝试使用 catchError 代替,但我似乎无法再次执行请求. 这是我当前的retryWhen: 从'@angular/core'导入{Injectable};进口 {HttpInterceptor、HttpHandler、H
..
如果我使用 *ngFor 构建访问链,我将无法访问异步管道提供的对象的属性. 在下面的示例中,假设测试行中的 Parking 和下面的 ?.[filter.propName] 两行表示同一对象上的相同键.测试行将评估为真,但检查属性不会.为什么?使用 *ngFor 标记这些内容时如何访问属性? 例如,如果 {{(compModel | async)?.Parking?.Garage}}
..
Angular2 Observable 共享不起作用并且重复的 http 调用正在进行 BuildingService.ts @Injectable()导出类 BuildingService {构造函数(私有http:Http){}Buildings$: Observable;this.buildings: 建筑物[];getData() : Observable{this.buildin
..
我有数据类 类处理器{频率:数量;错误:布尔值;}类计算机{名称:字符串;处理器:处理器[];} 我使用 json 从后端获取它: {"name": "阿尔法测试版",“处理器":[{"url": "ASD3-455R-FRTT-ASEW"},{"url": "AQW2-DFFFR-367K-MMKE"}]} 和单处理器 {"url": "ASD3-455R-FRTT-ASEW",“频率
..
通过使用 Http,我们调用了一个方法,该方法进行网络调用并返回一个 http observable: getCustomer() {return this.http.get('/someUrl').map(res => res.json());} 如果我们使用这个 observable 并向其添加多个订阅者: let network$ = getCustomer();让subscriber
..
Angular 2 RC.5 发布后,引入了路由解析.这里 演示了 Promise 的示例,如何如果我使用 Observable 向服务器发出请求,也一样吗? search.service.ts searchFields(id: number) {return this.http.get(`http://url.to.api/${id}`).map(res => res.json());}
..
如果我使用 *ngFor 构建访问链,我将无法访问异步管道提供的对象的属性. 在下面的示例中,假设测试行中的 Parking 和下面的 ?.[filter.propName] 两行表示同一对象上的相同键.测试行将评估为真,但检查属性不会.为什么?使用 *ngFor 标记这些内容时如何访问属性? 例如,如果 {{(compModel | async)?.Parking?.Garage}}
..
我一直在尝试使用 Angular 2 获得可拖动的 div.我正在使用 这个例子来自angular2-examples repo 作为起点,只是真正调整代码以解决toRx()方法.该代码有效,但它不考虑 mouseout 事件.这意味着如果我点击一个 Draggable div,然后移动鼠标 缓慢,div 将随鼠标移动.但是,如果我将鼠标移动得太快,则会发送 mouseout 事件而不是 mous
..
最近在使用 Rxjs 5 时,我使用 npm install Rxjs@5.0.1 下载了 Rxjs,从 node_modules 下下载的代码中,我在 Rxjs 文件夹中找到了 Observable.d.ts,我看到它声明了如下构造函数: ** @构造函数* @param {Function} 订阅 Observable 被调用时调用的函数* 最初订阅.这个函数被赋予一个订阅者,新值* 可以
..
我看到一些与 Rx 订阅/观察者相关的问题/答案,但它们可能适用于旧版本的 Rx,也不适用于 RxJS,后者可能符合不同的 API. 我的印象是订阅/订阅者和观察者都是一样的.如果您查看文档,它们位于不同的相邻部分,但似乎完全相同: 观察者:http://reactivex.io/rxjs/manual/overview.html#observer 订阅:http://react
..
我在一个页面上有一个表格和两个订阅: 第一个重新加载表数据.它有一个延迟,因为它调用了一个 api. 第二个亮点数据.不影响表数据. 当订阅一个一个地触发时,一切正常,但是当它们同时触发时,数据会被高亮显示,很快就会重新加载,所以高亮消失了. 您可以在此处查看. 如果正在重新加载,是否有办法推迟突出显示? 也许我可以通过引入 loading 变量来实现这一点,但我正
..
记住这段代码: const Rx = require('rxjs');变量 i = 3;const obs = Rx.Observable.interval(10).map(() => i++).map(函数(val){返回 Rx.Observable.create(obs => {obs.next(val)});}).take(10).concatAll();obs.subscribe(函数(
..
在 angular 2 应用程序中,对 API 的每个请求都有带有令牌的标头,以防令牌过期 API 以 401 http 代码响应.我有一种更新令牌的方法,但是如何在获取新令牌的过程中重新发送先前暂停其他请求的请求? 解决方案 您可以通过这种方式扩展 Http 类,使用 catch 运算符捕获错误可观察: 一种方法是扩展 HTTP 对象以拦截错误: @Injectable()导出类
..
在 rxjs5 文档中,它提到“为了减少多态性并从运算符中获得更好的性能,一些运算符已被拆分为多个运算符".它实际上是什么意思以及如何使用 mergeMapTo 运算符? 解决方案 来自 文档,mergeMapTo: 它就像 mergeMap,但总是将每个值映射到同一个内部 Observable. 我将 mergeMapTo 视为始终输出相同值的快捷方式.mergeMapTo
..