码迷,mamicode.com
首页 > 其他好文 > 详细

浅析promise

时间:2018-04-30 23:56:51      阅读:331      评论:0      收藏:0      [点我收藏+]

标签:pen   时间   ISE   promise   cat   dom   通过   floor   log   

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

标签:pen   时间   ISE   promise   cat   dom   通过   floor   log   

原文地址:https://www.cnblogs.com/renbo/p/8975234.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!