初识JS中的异步和回调

2018-12-05  本文已影响0人  Nelson_sylar

先举个例子

var n=0
function doSomething(){
    console.log('开始')
  var id=setInterval(()=>{
    n++
    console.log('在interval内循环')
    if(n>=10){
      window.clearInterval(id)
      console.log('interval循环完毕')
    }
  },1)
}
function doNext(){
  console.log('执行下一条')
}
doSomething()
doNext()
控制台结果

将上述代码修改为:


var n=0
function doSomething(fn){// 传入另一个函数
    console.log('开始')
  var id=setInterval(()=>{
    n++
    console.log('在interval内循环')
    if(n>=10){
      window.clearInterval(id)
      console.log('interval循环完毕')
      fn.call()  //也可fn(),结束时再调用传入的函数
    }
  },1)
}
function doNext(){
  console.log('执行下一条')
}

doSomething(doNext)//将doNext作为参数传入

控制台结果

这样就能通过回调函数(callback)来让告诉doNext(),doSomething()已经执行完了.
打个比方,下面的A就是同步,而B不包括括号内的部分就是异步,括号内的内容就是回调


  1. js中的异步就是不等结果就执行下一步.
  2. js中的回调函数就是拿到结果(通常是异步结果)
    其它待补充
上一篇 下一篇

猜你喜欢

热点阅读