博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
angular4 http RxJS Observable observer演示
阅读量:6701 次
发布时间:2019-06-25

本文共 1382 字,大约阅读时间需要 4 分钟。

angular4 http RxJS Observable observer

Observable 可观察对象(观察者们), Observer 观察者;

Observable就像快递公司, Observer是快递小哥, 那生产者, 消费者呢? 他们直接喊快递公司就行啦

首先学会 Http 类的用法

  1. 组件中 引入 Http

// 引入模块import { Http } from "@angular/http";// 注入@Injectable()export class ApiService {  constructor(public http: Http){}
  1. 使用方法, 通过 angular http 返回的就是一个 Observable

this.http      //map 操作符返回一个新的 Observable 对象      .map((r, err) => { return r })      //filter 操作符执行过滤操作,然后又返回一个新的 Observable 对象      .filter(r => r.length >= 2)      // 抖动时间      .debounceTime(1000)      //subscribe 操作符, 启动订阅      .subscribe( //订阅        r => {          // r 接收订阅成功后返回的数据        },        err => {          // 错误时的数据        })      // 错误处理      .catch(err=>{})

好吧, 这个我知道, 怎么自己创建一个呢?

// 创建一个观察者const myserver = (observer) => {  // 返回数据  observer.next('data')  // 返回错误  observer.error()  // 结束  observer.complete()  // 关闭  observer.closed()}// 建立可观察对象 Observableconst obs = new Observable(myserver)// 订阅obs.subscribe(r =>{ console.log(r)})

下面的 myhttp 函数演示了从一个 Get 请求获取 json 并缓存下来的例子,

let mydatamyhttp(): Observable
{ if (mydata) { // 将缓存的数据 mydata 以 Observable 返回 return new Observable((server: Observer
) => { server.next(mydata) server.complete() }) } else { // 通过 Angular Http 获取数据 return this.http.get('data.json') .map(r => { // 写入本地 mydata mydata = r return r }) }}

转载地址:http://vpwlo.baihongyu.com/

你可能感兴趣的文章
语义图像分割概览
查看>>
React 教程第十五篇 —— 项目应用
查看>>
关于js类型转换骚操作
查看>>
JS代码复用模式
查看>>
Node.js 教程第七篇——Express 基础应用
查看>>
如何优雅的设计PHP异常
查看>>
JavaScript的String
查看>>
记录Homestead安装过程中的坑
查看>>
【基础】JavaScript类型判断
查看>>
learning javascript - 数组
查看>>
猫头鹰的深夜翻译:软件设计原则--更健壮的代码
查看>>
前端学习资源
查看>>
FPGA算法映射要点
查看>>
带你玩转 JavaScript ES6 (六) - Map 映射
查看>>
【313天】我爱刷题系列072(2017.12.15)
查看>>
Android简易柱状图和曲线图表实现
查看>>
android新技术
查看>>
div宽度和高度固定,让图片铺满整个div而且不变形
查看>>
逆向- 拉好友进行群
查看>>
JavaScript的作用域、闭包、(apply, call, bind)
查看>>