Promise相关知识

136 阅读1分钟

Promise相关知识

一、Promise 到底是做什么的?

Promise是异步编程的一种解决方案。

一般情况下有异步操作时,使用Promise对这个异步操作进行封装。(代码优雅,互相独立又互相联系)

    // 成功调用  resolve
    new Promise((resolve, reject) => {
      setTimeout(() => {
        resolve('我爱你!!!')
        // reject('你爱我!!!!!')
      }, 1000)
    }).then((data) => {
      console.log(data);
      console.log(data);
      console.log(data);

    })

    //  失败调用  reject
    new Promise((resolve, reject) => {
      setTimeout(() => {
        // resolve('我爱你!!!')
        reject('你爱我!!!!!')
      }, 1000)
    }).then((data) => {
      console.log(data);
      console.log(data);
      console.log(data);

    }).catch((err) => {
      console.log(err);
      console.log(err);
      console.log(err);

    })

二、Promise 三种状态

1.pending:等待状态,比如正在进行网络请求,或者定时器没有到时间。

2.fulfill:满足状态,当我们主动回调 resolve 时,就处于该状态,并且会回调.then()。

3.reject:拒绝状态,当我们(主动回调了 reject 时,就处于该状态,并且会回调 .catch()。

三、Promise 的链式调用

Promise 的链式调用

Promise 的链式调用的简写

四、Promise 的all方法使用

关于Promise 的all方法的使用:(某个需求需要发送两个请求才能完成!可以用Promise.all)

Promise.all([
    new Promise((resolve,reject)=>{
        $.ajax({
            url:'url1',
            success:function(data){
                resolve(data)
            }
        })
    }),
     new Promise((resolve,reject)=>{
        $.ajax({
            url:'url2',
            success:function(data){
                resolve(data)
            }
        })
]).then(results => {
    console.log(results);
})