zoukankan      html  css  js  c++  java
  • 浅析promise

    Promise是一个构造函数,可以通过new 操作符获取一个promise对象,promise者,人如其名也。对,就是承诺。显示生活中,我们承诺别人一件事,一般会在将来某个时间兑现承诺。而 Promise 对象用于表示一个异步操作的最终状态(完成或失败),以及其返回的值(摘自MDN)。

    1. 创建Promise

    Promise 对象是由关键字 new 及其构造函数来创建的。该构造函数会?把一个叫做“处理器函数”(executor function)的函数作为它的参数。这个“处理器函数”接受两个函数——resolve 和 reject ——作为其参数。当异步任务顺利完成且返回结果值时,会调用 resolve 函数;而当异步任务失败且返回失败原因(通常是一个错误对象)时,会调用reject 函数。

    2.状态

    一个 Promise有以下几种状态:

    • pending: 初始状态,既不是成功,也不是失败状态。
    • fulfilled: 意味着操作成功完成。
    • rejected: 意味着操作失败。

    3.栗子

    我们来模拟一次考试,考试的结果我们不知道,但是在有结果后我们保证会做出通知(异步),如果及格执行resolve回调,不及格执行reject回调。以下是简单实现。

    new Promise(function(resolve,reject){
        var score = Math.floor(Math.random()*100);
        if(score>60){
            resolve(score)
        }
        else{
            reject(score)
        }
    }).then(score=>console.log('及格了,欧耶',score)).catch(score=>console.log('挂科了,继续努力',score))
  • 相关阅读:
    SecureCRT的SFTP在Windows与Linux之间传输文件
    VBS基础篇
    VBS数组函数学习实例分析
    vbs操作txt文本文件常用方法(函数)
    VBS基础篇
    CF91B Queue(单调队列+二分)
    CF1343D Constant Palindrome Sum(差分)
    CF1336C Kaavi and Magic Spell(区间dp)
    AcWing255 第K小数(整体二分)
    P3515 [POI2011]Lightning Conductor (四边形不等式优化)
  • 原文地址:https://www.cnblogs.com/renbo/p/8975234.html
Copyright © 2011-2022 走看看