web3

1xx:临时回应,表示客户端请继续。2xx:请求成功。3xx: 表示请求的目标有变化,希望客户端进一步处理。4xx:客户端请求错误。5xx:服务端请求错误。其中304:跟客户端缓存没有更新。



js运作在浏览器中,是单线程的,即js代码始终在一个线程上执行。js引擎有多个线程,一个主线程,其它的后台配合主线程。

主线程执行的说明:【js的运行机制】

(1)所有同步任务都在主线程上执行,形成一个执行栈。

(2)主线程之外,还存在一个”任务队列”。只要异步任务有了运行结果,就在”任务队列”之中放置一个事件。

(3)一旦”执行栈”中的所有同步任务执行完毕,系统就会读取”任务队列”,看看里面有哪些事件。那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行。

(4)主线程不断重复上面的第三步。

ES6标准中任务队列存在两种类型,一种就是上边提到的一些队列,比如setTimeout、网络请求Ajax、用户I\O等都属于宏观任务队列(macrotask queue),另一种是微观任务队列(microtask queue),Promise就属于微观任务队列。

在执行栈执行的过程中会把属于微观任务队列的任务分配到相应的微观任务队列中去。而在调用栈执行空之后,主线程读取任务队列时,会先读取所有微观任务队列,然后读取一个宏观任务队列再读取所有的微观任务队列

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,135评论 1 32
  • 一、单线程 主线程:JavaScript是单线程的,所谓单线程,是指在JS引擎中负责解释和执行JavaScript...
    puxiaotaoc阅读 21,090评论 7 32
  • 史上最全的iOS面试题及答案 iOS面试小贴士———————————————回答好下面的足够了----------...
    Style_伟阅读 2,409评论 0 35
  • __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,...
    LZM轮回阅读 3,358评论 0 6
  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 1,753评论 0 4