Promise的使用

Promise的简单认识

Promise 是ES6中对异步编程的一种解决方案,可以避免出现回调地狱

Promise最基本的语法

 new Promise((resolve, reject) => {
        setTimeout(()=>{
            resolve('data');
            reject('error')
        },1000)
    }).then((data)=>{
        console.log(data)
    }).catch((error)=>{
        console.log(error)
    })

这里我们用定时器模拟异步事件:

resolve与reject它们两个也是函数,会根据请求数据的成功和失败来决定调用哪一个。

请求成功,就在then( )里面执行resolve函数,请求失败在catch( )里面执行rejecte函数。

Promise 的链式调用

    // 第一次网络请求
    new Promise((resolve, reject) => {
        setTimeout(()=>{
            resolve('A')
        },1000)
    }).then((A)=>{
        // 执行第一次网络请求
        console.log('AAA');
        // 对执行结果进行第一次处理
        return new Promise((resolve, reject) => {
                resolve(A+'BBB')
        }).then((A)=>{
            // 第一次处理结果
            console.log(A);
            //对执行结果进行第二次处理
            return new Promise((resolve, reject) => {
                    resolve(A+'CCC')
            })
        }).then((A)=>{
            //第二次处理结果
            console.log(A)
        })
    })

省略掉Promise,resolve

 new Promise((resolve, reject) => {
       setTimeout(()=>{
           resolve('A')
       },1000)
   }).then((A)=>{
       console.log('AAA');
       return A + 'BBB'
   }).then((A)=>{
       console.log(A);
       return A + 'CCC'
   }).then((A)=>{
       console.log(A)
   })

posted @ 2019-12-16 20:29  ymzii  阅读(114)  评论(0)    收藏  举报