美文网首页
js异同步

js异同步

作者: hello_water | 来源:发表于2020-03-27 17:01 被阅读0次
js是单线程任务

一次只能执行一个任务,如果有多个任务,就需要排队。前面任务执行完,才会执行下一个任务。
排队等待就会阻塞,如果遇到死循环逻辑、页面就会出现“假死”。
为了解决这种问题,js语言将执行模式分为两种:同步(sync)和异步(async)

forEach

forEach本身是同步的,会按数组元素升序的顺序执行callback。
而callback中可以是异步任务。

同步例子:
[1,2,3,4].forEach((value) => {
    console.log(value);  //  这是一个大数值运算(非异步代码),需要几毫秒的时间
});
console.log('abc');  // 这些代码将会阻塞,等到forEach循环完之后执行
结果 image.png
[1, 2, 3,4].forEach((value) => {
    setTimeout(function() {
        console.log(value);  
    }, 1000);
});
console.log('abc');  // 这部分代码不会被setTimeout阻塞,forEach遍历完1,2,3,4之后就执行
结果 image.png
源码:
Array.prototype.forEach=function(callback){ 
    for(let index=0;index<this.length;index+){
        callback(this[index],index,this);
    }

}

相关文章

  • 小程序原生 请求封装

    提取原因 小程序提供了wx.request之类的方法,但是比如异步改为同步。 以上就为正常的js顺序(js中分为异...

  • Promise 事件机制

    执行循序 setTimout和promise 这里我们先要理解js是是单线程执行的。在内存中函数的执行是分同步和异...

  • Node.js中的文件系统

    Node.js 使用fs(File System)模块来操作文件,文件系统模块有两种不同的方法,分别是同步方法和异...

  • 异路同步

    那些被嘲笑和委屈装饰过的坚持 在大雨停歇后的空气里 显得孤独而骄傲 那些被青叶和微笑包裹起来的暗恋 在我们长大后的...

  • javascript的同步异步编程

    js中的同步和异步 同步js是单线程的,浏览器只会分配一个js引擎线程,用来执行js代码,当其执行代码时,js一次...

  • 简述JS执行机制 Event Loop

    1.同步异步 JS是单线程的,由上至下排队执行任务代码。为了提高JS的性能又区分为 同步任务 和 异步任务。同步任...

  • synchronous && asychrono

    synchronous 同步处理 (只有一个线程) asynchronous 异步处理 (另开一个线程) 同步和异...

  • 浏览器JS事件循环

    单线程 js引擎使用一个主线程来执行js代码,所以js同时仅能执行一个任务。 同步任务与异步任务 同步任务 在主线...

  • JS中的同步异步

    目录 1. 在JS中,什么是同步异步? 2. JS中常见的异步代码 1. 在JS中,什么是同步异步? 通俗解释一下...

  • OkHttp 的同步、异步请求的调度

    同步请求过程 okhttp3.RealCall#execute finished(RealCall call) 异...

网友评论

      本文标题:js异同步

      本文链接:https://www.haomeiwen.com/subject/iooluhtx.html