promise 解决回调地狱

71 阅读1分钟

promise 解决回调地狱

function fn(str){
           return new Promise((resolve,reject) => {
                //处理异步任务
                const flag=true;
                setTimeout(function(){
                    if(flag){
                        resolve('ok')
                    }
                    else{
                        reject('操作失败')
                    }
                })
            })
         
        }

        fn('666')
        .then((data)=>{
            console.log(data);
            return fn('77777');
        })
        .then((data)=>{
            console.log(data);
            return fn('8888')
        })
        .then((data)=>{
            console.log(data);
        })
        .catch((data)=>{
            console.log(data);
        })
        

await 解决回调地狱

function fn(str) {
          return new Promise( (resolve, reject) => {
                const flag = true;
                setTimeout(function () {
                    if (flag) {
                        resolve(str)
                    } else {
                        reject('处理失败')
                    }
                })
            })
        }

        //封装一个异步async函数
        async function getAsync(){
            var res1=await fn('666');  //await直接拿到fn()返回的promise的数据,并且赋值给res
            console.log(res1);
            var res2=await fn('777');
            console.log(res2);
            var res3=await fn('999');
            console.log(res3);
        }
        getAsync();