ES6 Promise对象学习笔记

来源:互联网 发布:如何生成淘宝客链接 编辑:程序博客网 时间:2024/05/20 15:41

Promise 是ES6中新增的异步编程解决方案,体现在代码中它是一个对象,可以通过Promise构造函数来实例化

进程的三种状态

graph LRPending进行中-->Resolved已完成Pending进行中-->Rejected已失败

两个原型方法

  1. Promise.prototype.then()
  2. Promise.prototype.catch()

简单实例

let action = new Promise(function(resolve,reject){  //code  //也就是你要执行的代码  if(//根据自己执行的代码结果来添加判断条件){      resolve(//自己要添加的参数);  }else{      reject(//自己要添加的参数);  }})action.then(function(value){    //执行成功操作}).catch(function(val){    //执行失败操作})

常用的静态方法

Promise.all() 可以将多个Promise实例包装成一个新的Promise实例,且当所有Promise实例的状态都变成resolved,Promise.all 的状态才会变成resolved,此时返回值组成一个数组,传递给then中的resolve函数.只要有一个rejected的,那么Promise.all的状态就会变成rejected,此时第一个被reject的实例的返回值会被传递给Promise的回调函数

function con(str){    const action = new Promise(resolve,reject){        console.log(str);        if(String(str).length > 5){            resolve(str)        }else{            reject(new Error('prama is String and long than 5'))        }    })    return action;}let actions = Promise.all([con('aaaaaa'),con('bbbbbbbb')]);actions.then(function(data){    console.log('success');    console.log(data)}).catch(function(err){    console.log(err);})
原创粉丝点击