∵ING 2023-04-23 20:18 采纳率: 82.6%
浏览 24
已结题

第一种写法会出现回调地狱,第二种写法就不会了,为什么还要用promise

        setTimeout(function () {  //第一层
            console.log('武林要以和为贵');
            setTimeout(function () {  //第二程
                console.log('要讲武德');
                setTimeout(function () {   //第三层
                    console.log('不要搞窝里斗');
                }, 1000)
            }, 2000)
        }, 3000)
 setTimeout(function () {  //第一层
            console.log('武林要以和为贵');
            a()
},3000)
function a(){
     setTimeout(function () {  //第二程
                console.log('要讲武德');
                b()
     }, 2000)
}
function b(){
     setTimeout(function () {  //第二程
                console.log('不要搞窝里斗');
     }, 1000)
}
  • 写回答

1条回答 默认 最新

  • 白云苍狗い 2023-04-24 09:22
    关注

    拿第一段代码为例,定时器是为了模拟网络请求而写的定时器,
    可现实开发中 你发送网络请求 并不知道具体的响应时间 是无法写成第二种格式的
    不知道你能理解吗.
    假设三个请求

    axios.get('1') 
    axios.get('2') 
    axios.get('3') 
    你如何按照你写的第二种格式写呢 这三个请求都不确定响应时间,我要依次打印三个结果
    那是不是 就要用到promise 之后我们利用.then回调
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月9日
  • 已采纳回答 5月1日
  • 创建了问题 4月23日

悬赏问题

  • ¥15 单纯型python实现编译报错
  • ¥15 c++2013读写oracle
  • ¥15 c++ gmssl sm2验签demo
  • ¥15 关于模的完全剩余系(关键词-数学方法)
  • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音