Promise
Promises的概念是由CommonJS小组的成员在Promises/A规范中提出来的。一般来讲,有以下的名词约定: promise(首字母小写)对象指的是Promise实例对象 Promise首字母大写且单数形式,表示Promise构造函数 Promises首字母大写且复数形式,用于指代Promises规范
Promise的概念
从语法上说,promise 是一个对象,从它可以获取异步操作的的最终状态(成功或失败)。 Promise是一个构造函数,对外提供统一的 API,自己身上有all、reject、resolve等方法,原型上有then、catch等方法。
Promise的状态
1)pending 初始状态 2)fulfilled 成功状态 3)rejected 失败状态 Promise 有以上三种状态,只有异步操作的结果可以决定当前是哪一种状态,其他任何操作都无法改变这个状态
Promise接受一个「函数」作为参数,该函数的两个参数分别是resolve和reject。这两个函数就是就是「回调函数」
resolve函数的作用:在异步操作成功时调用,并将异步操作的结果,作为参数传递出去;
reject函数的作用:在异步操作失败时调用,并将异步操作报出的错误,作为参数传递出去
const promise = new Promise((resolve, reject) => { // do something here ... if (success) { resolve(value); // fulfilled } else { reject(error); // rejected } }); //具体实现 function waiting() { return new Promise((resolve,reject)=>{ setTimeout(function() { //console.log(2) reject('哈哈') },2000) }) } waiting().then(res=>{ console.log(1) console.log('res:',res) console.log(3) }).catch(error=>{ console.log('error:',error) }) .then .catch .race .finally Promise.all([waiting(),waiting2(),waiting3()]) .then(res=>{ }).catch(res=>{ })