异步与回调

本文详细解释了同步与异步的概念及其在程序设计中的应用。通过具体的JavaScript代码示例展示了同步执行与异步执行的区别,并介绍了如何使用回调函数来处理异步操作。

异步与同步

  • 什么是同步
    • 程序运行一般是同步的(synchronous),即按照书写的顺序执行。
    • 例子
    console.log('1')
    console.log('2')
    console.log('3')
    //输出结果为1 2 3
    复制代码
  • 什么是异步
    • 异步(asynchronous)与同步相对,即在前一个方法未执行完时,就开始运行后一个方法。
    • 例子:
      console.log('1')
      setTimeout(()=>{
        console.log('2')
      },0)
      console.log('3')
      //这个的输出结果会是 1 3 2
      复制代码
  • 总而言之,同步就是顺序执行,异步就是不完全按顺序执行。

回调

  • 回调(callback):把一个函数作为参数传入到另一个函数中,并且满足某个时机调用这个函数,那么这个传进去的函数叫做回调函数。
  • 例子:
    function a(callback){
        callback();
    };
    a(function(){});
    
    //这样当 a 函数运行到 callback()的时候,函数回调。
    复制代码
  • 应用: 如果我们要获取一个异步的完毕信号,不用回调是获取不到的请看下面:
    function doSomething() {
      let result = ''
      setTimeout(function() {
        result = "finished"
        return result
      }, 1000)
    }
    
    console.log(doSomething()) //undefined
    复制代码
    那要怎样才能获取到异步返回的东西呢下面我们用用神奇的回调:
    function doSomething(continueDoSomething) {
      let result = ''
      setTimeout(function() {
        result = "finished"
        continueDoSomething(result)
      }, 1000)
    }
    
    doSomething(function(result){
      console.log(result)// "finished"
    })
    
    复制代码
    用了回调以后我轻易的拿到了异步的数据,问题解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值