首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Angular2 之 Promise vs Observable

调用情况 Observable 还具有可订阅性,对于 Cold Observable 而言,只有订阅后才开始起作用 Promise 一经产生便开始起作用 总结:在视频中有详细的介绍。...Observable,由于可以有任意多个数据,因此需要一个额外的状态来表示完成,一经完成后便不能再产生数据。...Observable,由于可以有任意多个数据,为了使用上的方便,提供了很多运算符,用来简化用户代码(可以参考 Array)。...对于变换,(最简单的方式)需要使用 .map 方法,用来把 Observable 中的某个元素转换成另一种形式。...当然还可能有另一类运算符,比如 .toPromise 等,这些并不返回 Observable 的方法其实本身并不是一个运算符,仅仅是对 Observable 的原型扩展。

60020
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【响应式编程的思维艺术】 (5)Angular中Rxjs的应用示例

    开发中Rxjs几乎默认是和Angular技术栈绑定在一起的,笔者最近正在使用ionic3进行开发,本篇将对基本使用方法进行演示。...冷热Observable 冷Observable从被订阅时就发出整个值序列 热Observable无论是否被订阅都会发出值,机制类似于javascript事件。...Angular应用中的Http请求 Angular应用中基本HTTP请求的方式: import { Injectable } from '@angular/core'; import { Observable...,{observe:'response'}); } http请求默认返回一个冷Observable,每当返回的流被订阅时就会触发一个新的http请求,Rxjs中通过shareReplay( )操作符将一个可观测对象转换为热...Observable(注意:shareReplay( )不是唯一一种可以加热Observable的方法),这样在第一次被订阅时,网络请求被发出并进行了缓存,之后再有其他订阅者加入时,就会得到之前缓存的数据

    6.7K20

    Rxjs 中怎么处理和抓取错误

    案例是使用 angular httpClient 模块来讲解,当然这适用于任何数据流。 场景 我们的应用中使用了一个服务,用来获取啤酒列表数据,然后将它们的第一个数据作为标题展示。.../v2/beers'; constructor(private http: HttpClient) {} getBeers(): Observable { return this.http.get...理解 try-catch 为什么不起作用,记住,当我们订阅第一个 observable 的时候,订阅会调起三个可选的参数。...throwError 不会触发数据到 next 函数,这使用订阅者回调的错误。我们我们想捕获自定义的错误或者后端提示的错误,我们可以使用订阅者中的 error 回调函数。...Rxjs 提供了 EMPTY 常量并返回一个空的 Observable,并未抛出任何的数据到订阅着回调中。

    2.1K10

    Rxjava源码解析笔记 | 创建Observable 与 ObserverSubscriber 以及之间订阅实现的源码分析

    notifyObservers()方法; 接着我们看源码中第一个create()的重载方法, 其最后都是return,返回一个new调用构造方法创建好的Observable对象; 而在create()..., 将传进来的OnSubscribe对象赋给类中的全局变量onSubscribe; 如此便完成了被观察者Observable的创建生成; ---- 观察者创建以及订阅实例代码: //第二步...; 当“订阅事件的列表” (也即当前观察者中的一个放着所有订阅事件的列表的成员变量) 之中不再有订阅事件时, 调用这个方法来对“订阅事件列表”进行解绑; isUnsubscribed():判断是否已经解绑订阅事件...)方法中可以实现一系列事件消费的过程——onNext()、onCompleted()等; observable中调用了onNext、onCompleted()的时候, 相应订阅了的Observer/...subscribe()中, 又调用了另外一个“同名的订阅方法”Observable.subscribe(), 传入的是subscriber和this两个参数; 跟进Observable.subscribe

    1.6K30

    Rxjs&Angular-退订可观察对象的n种方式

    原文/出处: RxJS & Angular — Unsubscribe Like a Pro 在angular项目中我们不可避免的要使用RxJS可观察对象(Observables)来进行订阅(Subscribe...)和退订(Unsubscribe)操作; 概述 我们的每个angular项目中都会用到RxJS, RxJS在我们的angular app中对数据流和性能有非常大的影响。...{ getEmissions(scope: string): Observable { return Observable.create((observer) => {...方式一 "常规"的取消订阅的方式 最简单的订阅和取消订阅一个可观察对象的方式是在 ngOnInit 方法中订阅可观察对象(Observable), 然后在组件类中创建一个类属性用来保存这个订阅(Subscription...你只需创建可观察对象(Observables)然后Angular会帮助你进行订阅和取消订阅. 方式4 takeUntil 操作符 RxJS包含许多有用的操作符, takeUntil就是其中之一.

    1.2K00

    RxJS速成 (下)

    作为Observable, 你可以去订阅它, 提供一个Observer就会正常的收到推送的值. 从Observer的角度是无法分辨出这个Observable是单播的还是一个Subject....下面是一个angular 5的例子: app.component.html: 从Subject共享Observable到多个Subscribers 订阅了每个输入的observable, 它只是把输入的observable的值不带任何转换的发送给输出的Observable....它有这些好处: 不必编写嵌套的subscribe() 把每个observable发出来的值转换成另一个observable 自动订阅内部的observable并且把它们(可能)交错的合成一排. ?...因为它还具有取消的效果, 每次发射的时候, 前一个内部的observable会被取消, 下一个observable会被订阅. 可以把这个理解为切换到一个新的observable上了.

    2.2K40

    Javascript中的Return,Return false和Return true

    Javascript的返回值 Javascript中的返回值总共分为四类: return; return false; return true; return variable(变量); 这四种返回值其实有很大的不同...,(function(){return;})可以看做是匿名函数的名字,类似于add()中的add,后面的()表示执行这个匿名函数,类似于执行add()函数。...i为匿名函数function(){return;}的返回值,注意:在Javascript中函数都有返回值,默认的函数返回值为undefined。...3. return false return false的介绍还是直接上代码: var i=(function(){return false;})(); alert(i); 运行alert(i)的输出结果为...4. return true return true的介绍也是上代码: var i=(function(){return false;})(); alert(i); 运行alert(i)的输出结果为true

    2.3K10

    RxJS 处理多个Http请求

    管理多个异步数据请求会比较困难,但我们可以借助 Angular Http 服务和 RxJS 库提供的功能来实现上述的功能。处理多个请求有多种方式,使用串行或并行的方式。...基础知识 mergeMap mergeMap 操作符用于从内部的 Observable 对象中获取值,然后返回给父级流对象。...仅当内部的 Observable 对象发出值后,才会合并源 Observable 对象输出的值,并最终输出合并的值。...})).subscribe(user => { this.user = user }); } } 在上面示例中,我们通过 mergeMap 操作符,解决了嵌套订阅的问题...一旦列表的 Observable 对象都发出值后,forkJoin 操作符返回的 Observable 对象会发出新的值,即包含所有 Observable 对象输出值的数组。

    5.8K20
    领券