promise解决回调地狱问题

article6/8/2023 12:53:12 AM/文章来源:https://www.cnblogs.com/GFM0518/p/16591803.html
        //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()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.wtld.cn/a/82.html

如若内容造成侵权/违法违规/事实不符,请联系方塘网进行投诉反馈,一经查实,立即删除!

相关文章

terminating connection due to idle-session timeout

报错信息psycopg2.databaseerror: terminating connection due to idle-session timeout官网文档说明 文档官方不推荐在postgresql.conf中设置statement_timeout,因为它会影响所有会话。statement_timeout: 中止任何使用了超过指定毫秒数的语句,从命令到达服务器开始计时。如…

ExtJS - UI组件 - Chart

更新记录 转载请注明出处:https://www.cnblogs.com/cqpanda/p/16587398.html 2022年8月16日 发布。 2022年8月13日 从笔记迁移到博客。ExtJS教程汇总:https://www.cnblogs.com/cqpanda/p/16328016.html Chart(图表)说明 图表的类型(Chart types) 说明 three types of char…

10--栈计算器(补充:前缀、中缀、后缀表达式规则;逆波兰表达式计算器)

一、前缀表达式【波兰表达式】:前缀表达式也称为波兰表达式,其特点是运算符位于操作数之前 举例说明:(3+4)*5-6 对应的前缀表达式就是:- * + 3 4 5 6前缀表达式的计算机求值: 从右至左扫描表达式,遇到数字时,将数字压入堆栈中,遇到运算符,弹出来栈顶的2个数,用运算符…

如何在Linux快速搭建一套ADB环境

一、ADB简介 1.什么是ADB Android Debug Bridge,安卓调试桥,它借助adb.exe(Android SDK安装目录platform-tools下),用于电脑端与模拟器或者真实设备交互;使用adb命令需安装Android SDK,并配置环境变量; 2.ADB架构及组成 它是一个C/S架构的应用程序,由三部分组成:adb …

多个装饰器,执行顺序,以及自己编写响应以及请求

1.背景背景:我为啥单独写一片这个文章呢?是因为遇到好多次了我必须搞懂它!文章分三部分1.1不带参数的多个装饰器1.2带参数的装饰器1.3带参数的实例,直接拿来用2不带参数的多个装饰器‘# 编写装饰器,作为响应以及请求的校验def request_wrapper(fun):print(f"request_wr…

2022杭电多校第八场1、7、5

1001 Theramore 观察以下两种情况:以0为例,上图就是说,只要有两个连续的0,我们就可以一直把它们往前移动直到移动到首位。同理只要有两个连续的1我们就可以把它们移动到尾部。 所以可以开一个栈,顺序将字符入栈,一旦遇到连续的0或者1,就把它们删去,在首尾打下标记。 co…

Bert bert-base-uncased 模型加载

1、下载模型相关文件到本地路径 https://huggingface.co/bert-base-uncased/tree/main2、修改模型加载,注释为修改前

A层省选4

场均一题放弃 A. 我 我切题了 发现图上有环可以不停的转,让空位到我们需要的地方去,而环的具体形态并不重要,我们只需要知道环的大小(\(size\))和环内元素个数(\(cnt\))即可 所以使用\(tarjan\)缩点,然后转化为一个\(DAG\)上的问题 发现环的大小等于元素个数时,我们必须先…

fa

\[ax+by\equiv X_i \]$$\texttt{--END--}$$我的博客: $\texttt{1Liu}$ 本文链接: https://www.cnblogs.com/OLiuO/p/16589553.html 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!