promise解决回调地狱问题

        //promise解决回调地狱问题
        function eat(fn) {
            setTimeout(() => {
                fn('吃饭')
            }, 2000) 
        }  
        function xizao(fn) {
            setTimeout(() => {
                fn('洗澡')
            }, 1000)
        }
        eat(function (data) {
            console.log(data)
            xizao(function (data) {
                console.log(data)
                xizao(function (data) {
                    console.log(data)
                    xizao(function (data) {
                        console.log(data)
                    })
                })
            })
        }
        )
        //异步函数的调用会产生回调地狱,代码会像一坨屎
 
 
        function eat() {
            return new Promise((resolve) => {
                setTimeout(() => {
                    resolve('吃饭')
                }, 2000)
            })
        }
        function xizao() {
            return new Promise((resolve) => {
                setTimeout(() => {
                    resolve('洗澡')
                }, 1000)
            })
        }
        //通过Promise的then方法解决回调地狱问题,代码会变成一行一行的,不会嵌套
        eat().then((res) => {
            console.log(res + '1')
            return xizao()
        }).then((res) => {
            console.log(res + '1')
        })
        //通过async,await函数将异步函数以同步的形式执行
        async function run() {
            let eat1 = await eat()
            console.log(eat1 + '2')
            let xizao1 = await xizao()
            console.log(xizao1 + '2')
        }
        run()
posted @   就挺秃然的  阅读(222)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示