资讯专栏INFORMATION COLUMN

浅谈javascript中回调函数和异步回调

lufficc / 2796人阅读

摘要:话不多说,同样直接上栗子执行完成,进行第二步操作执行结果为进行第二步操作执行完成因为是异步回调函数,所以是不需要先等函数执行完成后,才能执行进行第二步操作

Hi,小伙伴们,今天来和大家谈一谈有关javascript 中回调的问题,首先回调函数分为两种
1、同步回调函数(普通的回调函数)
2、异步回调函数

其中同步回调函数是要等到回调函数都执行完成后才能进行接下来的操作,也就是说是阻塞式运行。

话不多说,直接上栗子

function waitFive(callback){
      var currentDate = new Date();
      var pus = 0;
      while(pus<5000){
        var date = new Date();
        pus = date - currentDate;
      }
      callback("执行完成");
    }
    waitFive(function(msg){console.log(msg);});
    console.log("进行第二步操作;");
    
    **执行结果为:**
 
       执行完成
       进行第二步操作
   
  

因为是同步回调函数,所以是要先等waitFive函数执行完成后,才能执行

   console.log("进行第二步操作;");

而异步回调函数不需要等到回调函数都执行完成后才能进行接下来的操作,也就是说是非阻塞式运行。

话不多说,同样直接上栗子

function waitFive(callback){
      setTimeout(function(callback){
      callback("执行完成");
      
      },5000);
    }
    waitFive(function(msg){console.log(msg);});
    console.log("进行第二步操作;");
    
    **执行结果为:**
       进行第二步操作
       执行完成

因为是异步回调函数,所以是不需要先等waitFive函数执行完成后,才能执行

   console.log("进行第二步操作;");

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/86546.html

相关文章

  • 浅谈不同环境下的JavaScript执行机制 + 示例详解

    摘要:如果没有其他异步任务要处理比如到期的定时器,会一直停留在这个阶段,等待请求返回结果。执行的执行事件关闭请求的,例如事件循环的每一次循环都需要依次经过上述的阶段。因此,才会早于执行。 showImg(https://segmentfault.com/img/bVbnY76); 概念 同步任务(Synchronous) 在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务 ...

    wanghui 评论0 收藏0
  • 浅谈JavascriptPromise对象的实现

    摘要:我们可以进行适当的改进,把回调函数写到外面即使是改写成这样,代码还是不够直观,但是如果有了对象,代码就可以写得非常清晰,一目了然,请看这样函数就不用写在的回调中了目前的标准中还未支持对象,那么我们就自己动手,丰衣足食吧。 本文同步自我得博客:http://www.joeray61.com 很多做前端的朋友应该都听说过Promise(或者Deferred)对象,今天我就讲一下我对Prom...

    caiyongji 评论0 收藏0
  • 浅谈 JavaScript 运行机制

    摘要:以多线程的形式,允许单个任务分成不同的部分进行运行。提供协调机制,一方面防止进程之间和线程之间产生冲突,另一方面允许进程之间和线程之间共享资源。主线程会不断的重复上诉过程。 众所周知,js是单线程的,说到线程,我们首先来仔细辨析一下线程和进程的知识。 一、进程与线程 阮一峰老师的一篇文章写的很好 cpu会给当前进程分配资源,进程是资源分配的最小单位,进程的资源会分配给线程使用,线程是C...

    URLOS 评论0 收藏0
  • 浅谈async·await

    摘要:在语言中,函数替换的不是表达式,而是多参数函数,将其替换成一个只接受回调函数作为参数的单参数函数。为什么里面必须使用函数呢,因为我们需要确保传入的值只有一个,利用其回调函数,来进行递归自动控制函数的流程,接收和交还程序的执行权 前言 这篇文章主要是梳理一下自己对阮一峰大神写的关于async/await文章,有写得不对的地方以及理解得不对的地方,各位大佬请指错! 对比 简单对比传统异步,...

    Magicer 评论0 收藏0
  • 浅谈ES6原生Promise

    摘要:如果有错误,则到的第二个回调函数中,对错误进行处理。假设第一个的第一个回调没有返回一个对象,那么第二个的调用者还是原来的对象,只不过其的值变成了第一个中第一个回调函数的返回值。 ES6标准出炉之前,一个幽灵,回调的幽灵,游荡在JavaScript世界。 正所谓: 世界本没有回调,写的人多了,也就有了})})})})})。 Promise的兴起,是因为异步方法调用中,往往会出现回调函数一...

    yedf 评论0 收藏0

发表评论

0条评论

lufficc

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<