账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    JavaScript同步一定比异步先执行吗
    40
    0

    JavaScript同步一定比异步先执行吗

    //做一个时间戳
    var time = new Date().getTime()
    setTimeout(()=>{
        console.log("我延迟3秒后显示");
        console.log(`我实际的延迟时间:${new Date().getTime() - time}`)
    },3000)
    while(new Date().getTime() - time < 6000){}
    console.log("我6秒后的显示")
    
    //我6秒后的显示
    //我延迟3秒后显示
    //我实际的延迟时间:6002

    由上面的例子,我是不是可以得出这样一个结论:同步比异步先执行,必须要同步都执行完成后,才能执行异步函数

    setTimeout(()=>{
        console.log("我只延迟了一秒")
    },1000)
    setTimeout(()=>{
        while(true){}
    },2000)
    setTimeout(()=>{
        console.log("我只延迟了五秒")
    },3000)
    console.log("我不是setTimeout函数")
    
    //我不是setTimeout函数
    //我只延迟了一秒

    上面的例子中,由于while(true){}死循环的关系,导致浏览器假死,不打印出:我只延迟了五秒,是否平时理解的异步函数之间互不影响是错误的
    望大牛解答,谢谢各位了

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 安静点好吗 普通会员 1楼

      在JavaScript中,同步和异步执行是根据代码执行的顺序决定的。如果代码中没有明确的顺序语句,那么异步代码会在同步代码执行完毕之后执行。

      例如,下面的代码在没有明确的顺序语句之前会被执行:

      javascript console.log("同步代码"); console.log("异步代码");

      在这个例子中,异步代码会在同步代码执行完毕之后执行。

      如果你想让你的代码按照特定的顺序执行,你可以使用Promise或者async/await等方法。这些方法允许你设置回调函数或者使用 Promise.all() 等方法来控制代码的执行顺序。例如:

      ```javascript async function fetchData() { return new Promise((resolve, reject) => { // 异步代码 setTimeout(() => { resolve("同步代码"); }, 1000); }); }

      fetchData().then(data => { console.log(data); }).catch(error => { console.error(error); }); ```

      在这个例子中,异步代码会在同步代码执行完毕之后执行,并且在执行完成后会被调用。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部