美文网首页JavaScript
[JavaScript] 同步回调与异步回调

[JavaScript] 同步回调与异步回调

作者: 何幻 | 来源:发表于2016-03-07 07:16 被阅读598次

同步回调的例子:

function highOrderFunc(callback){
    callback();
}

setTimeout(function(){
    alert(1);    //后执行
},0);
highOrderFunc(function(){
    alert(2);    //先执行
});
结果:2 1

异步回调的例子:

function asyncTask(success){
    sendAjax({
        url:'/',
        success:success
    });
}

setTimeout(function(){
    alert(1);    //先执行
},0);
asyncTask(function(){
    alert(2);    //后执行
});
结果:1 2

之所以有这样的差异,是因为浏览器对同步回调和异步回调的实现方式不同

浏览器对同步回调的实现方式是单线程的,拿到参数函数以及它的词法环境,直接调用即可。
而对于异步回调,需要另起一个线程,让函数先返回。当异步任务执行完后,再把事件放到任务队列中,依赖事件循环机制来触发

相关文章

  • [JavaScript] 同步回调与异步回调

    同步回调的例子: 异步回调的例子: 之所以有这样的差异,是因为浏览器对同步回调和异步回调的实现方式不同。 浏览器对...

  • 前端入门11 -- JavaScript之Promise

    回调函数 回调函数分为两种类型,分别为同步回调与异步回调; 同步回调:会立即执行,完全执行完了才结束,不会放入回调...

  • nodejs--day4笔记

    1. 同步与异步API 回调函数 通过回调函数返回异步API的值 代码执行顺序 2. promise 解决回调...

  • java中的回调

    在java中回调分为异步回调和同步回调

  • 回调、同步回调、异步回调

    异步消息的传递-回调机制 原文地址:https://www.ibm.com/developerworks/cn/l...

  • 个人笔记

    同步/异步 回调函数=> 回调地狱 setInterval/setTimeout =>Promise=>Gener...

  • 同步、异步

    同步:等待结果异步:不等待结果 注意,异步常常伴随回调一起出现,但是异步不是回调,回调也不一定是异步。 【时序图】...

  • JavaScript 之 Promise

    开始之前 JavaScript是单线程语言,所以都是同步执行的,要实现异步就得通过回调函数的方式,但是过多的回调会...

  • 同步,异步

    js异步操作的方法:1.回调函数就是把一方法当作参数传到另一个方法里。有两种回调方式:同步回调和有异步回调 同步回...

  • for循环中嵌套setTimeout,执行顺序和结果的理解

    同步优先、异步靠边、回调垫底!公式表达:同步 => 异步 => 回调 JS是单线程环境,也就是说代码的执行是 同步...

网友评论

    本文标题:[JavaScript] 同步回调与异步回调

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