浅析promise

Posted 鲁小肃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅析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))

 

以上是关于浅析promise的主要内容,如果未能解决你的问题,请参考以下文章

浅析promise

浅析Promise

前端面试题之手写promise

Jquery中的异步编程浅析 延期(deferred)的承诺(promise)

澄清 node.js + promises 片段

浅析 Python 模块