zoukankan      html  css  js  c++  java
  • 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

    待续。。。。

      

  • 相关阅读:
    Search a 2D Matrix leetcode java
    Sqrt(int x) leetcode java
    Search for a Range leetcode java
    php获取客户端公网ip代码
    ddns+ros(routeros)+centos7.6+nginx+php+dnspod
    limits.conf文件修改注意事项,限制文件描述符数和进程数
    阿里云本地存储网关的一些特点和注意事项
    ROS根据访问不同的网址,走不同的路由策略的脚本
    漫威所有电影的 按时间线的观影顺序
    sklearn—特征工程
  • 原文地址:https://www.cnblogs.com/MissBean/p/promise.html
Copyright © 2011-2022 走看看