18-4、finally()

64 阅读1分钟
<script>
    // 1.什么时候执行
    // 当Promise状态发生变化时,不论如何变化都会执行,不变化不执行
    // new Promise((resolve, reject) => {
    //     // resolve(123);
    //     reject('reason')
    // }).finally(data => {
    //     console.log(data);
    // }).catch(err => {

    // })

    // 2.本质
    // finally()本质上是then()的特例
    // new Promise((resolve, reject) => {
    //     // resolve(123);
    //     reject('reason')
    // })
    //     .finally(data => {
    //         console.log(data);
    //     })
    //     .catch(err => { });
    // 等同于
    new Promise((resolve, reject) => {
        // resolve(123);
        reject('reason')
    }).then(result => {
        return result;
    }, err => {
        return new Promise((resolve, reject) => {
            reject(err)
        });
    }).then(data => {
        console.log(data);
    }).catch(err => {
        console.log(err);
    })

</script>