JS异步编程与回调函数

回调函数

function add(num1, num2, callback){
    var sum = num1 + num2;
    if (typeof callback === 'function') {     //确认这是一个函数
        callback(sum);
    }
}

function print(num){
    console.log(num);
}

add(1, 2, print);       //=>3

 回调函数不会立即执行,需要通过()运算符才会执行。

 回调函数是一个闭包,能访问到其外层的变量。

一个函数中可以传递多个回调函数

回调函数可以使用在以下场景:

  • 异步编程。
  • 事件监听、处理。
  • setTimeout、setInterval方法。
  • 通用功能,简化逻辑。

 

异步编程

 Javascript语言的执行环境是"单线程"。

浏览器经常无响应往往就是因为某段JS代码长时间运行而阻塞了后面的代码运行,导致页面卡在一个地方,不能执行别的操作。

这是一般情况的“同步模式”。为了解决这个问题,就可以使用异步编程。其中最基础的方法就是回调函数。

function print(name, callback) {
  setTimeout(() => {
    console.log(name)
    if (callback) {
      callback()
    }
  }, 1000)
}
print('a', function () {
  print('b')
})

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值