promise用法解析

时间:2021-02-01 12:48:56   收藏:0   阅读:0

Promise的理解

使用定时器模拟一个异步请求

new Promise((resolve, reject) => {
    setTimeout(() => {
        // 成功时调用resolve     
        resolve(‘你好‘)
         //失败时调用reject
        reject(‘error message‘)
    }, 1000)
}).then((data) => {
    console.log(data) //你好
}).catch((err) => {
    console.log(err)
})
new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve(‘你好‘)
        reject(‘error message‘)
    }, 1000)
}).then((data) => {
    console.log(data)
}, (err) => {
    console.log(err)
})

Promise的三种状态

Promise的链式调用

new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve(‘aaa‘)
    }, 1000)
}).then(res => {
    console.log(res, ‘第一层的10行代码‘)
    // return new Promise((resolve) => {resolve(res + ‘111‘)})
    return res + ‘111‘
}).then(res => {
    console.log(res, ‘第二层的10行代码‘)
    return Promise.reject(‘err message‘)
}).then(res => {
    console.log(res, ‘第三层的10行代码‘)
}).catch(err => {
    console.log(err)
})

Promise中的all方法

Promise.all([new Promise(resolve => {
        setTimeout(() => {
            resolve(‘result1‘)
        }, 2000)
    }),
    new Promise(resolve => {
        setTimeout(() => {
            resolve(‘result2‘)
        }, 1000)
    })
]).then(results => {
    console.log(results[0], results[1])
})
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!