Promise
什么情况下用到promise?
- 一般情况下是有异步操作时,使用Promise对这个异步操作进行封装,new->构造函数 (1.保存了一些状态信息 2.执行传入的函数)在执行传入的回调函数时。会传入两个参数,resolve , reject。本身又是函数
1 | new Promise((resolve, reject) => { |
Promise三种状态:
- pending:等待状态,比如正在进行网络请求,或者定时器没有到时间。
- fulfilled:满足状态,当我们主动回调了resolve时,就处于该状态,并且会回调.then()
- reject:拒绝状态,当我们主动回调了reject时,就处于该状态,并且会回调.catch()
Promise链式调用
1 | new Promise((resolve, reject) => { |
Promise.all方法
Promise.all([ // new Promise((resolve, reject) => { // $ajax({ // url: '', // success: function (data) { // resolve(data) // } // }) // }), // new Promise((resolve, reject) => { // $ajax({ // url: '', // success: function () { // resolve(data) // } // }) // }) // ]).then(result =>{ // console.log(result); // }) new Promise((resolve, reject) => { setTimeout(()=>{ resolve('result1') },2000) }), new Promise((resolve, reject) => { setTimeout(()=>{ resolve('result2') },1000) }) ]).then(result =>{ console.log(result); })