∵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日