Js Promise

作用:主要是异步处理,一共三种状态(padding,fulfilled,reject),分别代表进行,成功,失败,状态不可变

使用:它主要在一个函数体内return出去,函数执行时,可能存在异步过程,在主函数前面加上async,在主函数调用时候,前面加上await。

结构:promise里面包含的是一个函数体,函数体内部包含两个形参(reslve,reject),函数体时具体业务相关逻辑,比如请求一个数据成功或失败分别怎么操作等等

方法:①then返回的是一个成功状态的promise,下个then就可以链式调用了;②:catch返回一个失败的promisi,下一个catch链式调用;③finally方法时成功失败都执行;④all方法,传入一个promise数组,执行所有成功promise,如果有一个失败,就返回失败的promise;rase()将最先promise输入,如果有一个失败,还是会返回最先的promise。

举例:一共四个函数,ont()、two()、three()、run(),two()中存在异步,如果想要按照顺序执行,two()会发生undefined,在经过primise处理之后,three()会等着two()处理完成再执行。

   <script>
        function one() {
            return 'i am one'
        }

        function two() {
            return new Promise((resolve, reject) => {
                    // setTimeout(() => {
                    //     resolve('i am two')
                    // }, 3000)
                    resolve('success')
                    reject('full')
                }).then(res => console.log(`sesolve成功`, res))
                .catch(err => console.log(`reject失败`, err))
                .finally(() => {
                    console.log('成功失败都执行'); //请求接口,loding状态,在这个地方调用
                })
        }

        function three() {
            return 'i am three'
        }

        async function run() {
            console.log(one());
            console.log(await two());
            console.log(three());
        }
        run()
    </script>

posted @ 2022-05-19 22:34  xuelin  阅读(144)  评论(0编辑  收藏  举报