【JS】Promise 简介

94 阅读1分钟

一、Promise 是什么?

本质上是一个存储器,可以用来存储异步的数据。Promise 对象通过构造函数,接收一个 executor 函数参数,这个 executor 函数体里面有异步代码(fs 文件操作、数据库操作、Ajax、定时器),Promise 就是用于解决异步编程中的回调地狱问题。

通俗理解:创建 Promise 对象时,A 给 B 一个函数 fun(携带两个参数 resolve 和 reject,这两个参数都是函数类型),B 调用 fun(resolve, reject),就可以将 resolve 和 reject 函数返回给 A 。当成功时,A 可调用 resolve(),向 Promise 中存储成功的结果;当失败时,A 可调用 reject(),向 Promise 中存储失败的信息。在 then() 中,传递两个函数(成功的回调 和 失败的回调,其参数可有可无),当成功时,B 会执行成功的回调;当失败时,B 会执行失败的回调。

二、怎么使用 Promise?

new Promise((resolve, reject) => {
    if('成功') resolve('成功')
    else reject('失败')
})
.then(res => {
    // 成功的回调
    console.log(res)
})
.catch(err => {
    // 失败的回调
    console.log(err)
})
.finally(() => {
    // 无论成功或失败都会执行的回调
})