• ES学习之promise


    初入新公司,恰逢小组分享会

    因为之前很少用ES6,所以昨天下午看了很多promise的相关知识

    学习一个知识,必然是它是什么?它有什么用?

    SO,promise是异步编程的一种解决方案,所谓同步、异步编程就如同物理电流上的串联和并联。

    promise对象的两个特点:对象的状态不受外界影响。

             一旦状态改变,就不会再变(一旦改变状态会被凝固)

    promise对象的三个状态:pending(进行中),resolve(又称fullfilled,已完成),reject(已失败)

    promise对象的优点:将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数

            Promise对象提供统一的接口,使得控制异步操作更加容易。

    promise对象的缺点:① 无法取消Promise,一旦新建它就会立即执行,无法中途取消

               ② 如果不设置回调函数,Promise内部抛出的错误,不会反应到外部。

               ③ 当处于Pending状态时,无法得知目前进展到哪一个阶段(刚刚开始还是即将完成)

    如果某些事件不断地反复发生,一般来说,使用 Stream 模式是比部署Promise更好的选择。

    promise用法:

    var promise = new Promise(function(resolve, reject) {
      // ... some code
    
      if (/* 异步操作成功 */){
        resolve(value);
      } else {
        reject(error);
      }
    });
    

    Promise实例生成以后,可以用then方法分别指定Resolved状态和Reject状态的回调函数。

    promise.then(function(value) {
      // success
    }, function(error) {
      // failure
    });

    promise.prototype.then

    promise.prototype.catch

    Promise.all

    Promise.race

    待续。。。。

      

  • 相关阅读:
    修改Ubuntu从文本界面登录
    Putty等工具中解决SSH连接超时断开的问题
    QoS policy-map class-map
    Linux中的do{...} while(0)
    手动增加swap分区
    __attribute__ 机制详解(一)
    欢迎来语雀关注我
    WebForm 生成并显示二维码
    《C#图解教程》 总览
    C#图解教程 第二十五章 其他主题
  • 原文地址:https://www.cnblogs.com/MissBean/p/promise.html
Copyright © 2020-2023  润新知