美文网首页web前端
rxjs-Observable和普通函数的区别

rxjs-Observable和普通函数的区别

作者: 姜治宇 | 来源:发表于2020-12-01 17:42 被阅读0次

rxjs是提供一种响应式编程的思路,可以减少代码耦合度,让代码看着更加优雅。
看如下这段代码:

    import {Observable } from 'rxjs';

    var ob = Observable.create((observer)=>{
      observer.next('hello');
    });

    ob.subscribe(v=>{
      console.log(v) // hello
    });

直观上感觉这是一个异步代码,因为涉及到发布和订阅。但实际上这段代码跟声明一个函数是差不多的功效:

function foo(){
  return 'hello';
}
foo();

但是吧,函数天生有些缺陷,怎么说呢?
比如,能让一个函数返回多个值吗?

function foo(){
  return 'hello';
  return 'world'; //永远执行不到
}
foo();

再比如,能让函数返回异步请求的信息吗?

function foo(){
  setTimeout(()=>{
    return 'hello';
  },1000);
}
foo();//拿不到异步信息

您瞧,函数还是能力有限哪~~
然鹅以上的痛点,用rxjs可以轻松搞定。

    import {Observable } from 'rxjs';
    var ob = Observable.create((observer)=>{
      observer.next('hello');
      observer.next('world');
      setTimeout(() => {
        observer.next({code:200,msg:'ok'}); // 异步执行
      }, 1000);
    });
    ob.subscribe(v=>{
      console.log(v);
      if(v.code === 200) {
        console.log(v.msg)
      }
    });

也就是说,Observable可以做到:
请给我任意数量的值,无论是同步还是异步。

相关文章

  • rxjs-Observable和普通函数的区别

    rxjs是提供一种响应式编程的思路,可以减少代码耦合度,让代码看着更加优雅。看如下这段代码: 直观上感觉这是一个异...

  • 箭头函数和普通函数的主要区别是什么?

    箭头函数和普通函数的主要区别: this的指向问题,箭头函数是不存在this的(也是箭头函数和普通函数最主要的区别...

  • ★ 回调函数、闭包

    普通函数和回调函数有什么区别? 什么是闭包? 普通函数和回调函数主要是在调用方式上的区别: 普通函数的调用:调用程...

  • 第六章 创建对象

    构造函数 constructor和instanceof区别 构造函数和普通函数区别 原型模式理解原型对象isPro...

  • 原型链,对象,构造函数之间的一些联系

    构造函数: 构造函数跟普通函数没什么区别,都是由function定义的,为了和普通函数做区别,一般构造函数首字母大...

  • 函数的扩展

    函数的扩展 箭头函数和普通函数区别箭头函数没有this对象,箭头函数的里的this始终指向定义时所在对象,普通函数...

  • 箭头函数和普通函数区别?

    箭头函数是普通函数的简写, 可以更优雅的定义一个函数, 和普通函数相比, 有以下几点差异: 函数体内的this对象...

  • 箭头函数和普通函数的区别

    今天在面试某辅导公司前端岗位时,面试官问到了箭头函数和普通函数的区别,本以为只是一个简单的问题,在回答了箭头函数的...

  • 箭头函数和普通函数的区别

    什么是箭头函数? 箭头函数就是没有function关键字,而是一个类似箭头的函数: 相当于 它们之间的区别: 箭头...

  • 构造函数和普通函数的区别

    有人举了一个例子来解释构造函数 ,我觉得蛮贴切的就在这里引用一下,有人想要造一千个金币,并且要每个金币上面刻有不同...

网友评论

    本文标题:rxjs-Observable和普通函数的区别

    本文链接:https://www.haomeiwen.com/subject/qpiswktx.html