美文网首页
初识JS中的异步和回调

初识JS中的异步和回调

作者: Nelson_sylar | 来源:发表于2018-12-05 15:19 被阅读0次

先举个例子

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()
控制台结果
  • 这里引出一个疑问:
    明明doNext()在doSomething()之后,但是doNext()内的console.log(执行下一条)确执行在(开始)之后.
    这是为什么呢?---是因为setInterval触发了JS中的异步执行顺序.它让doSomething()里的内容还没做完,就开始执行doNext()了.
  • 这里都doNext()并不知道doSomething()执行完没有.所以引出了js中的另一个知识点--回调函数.

将上述代码修改为:


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中的回调函数就是拿到结果(通常是异步结果)
    其它待补充

相关文章

  • 初识JS中的异步和回调

    先举个例子 这里引出一个疑问:明明doNext()在doSomething()之后,但是doNext()内的con...

  • 你不知道的JS(中卷)第七章

    第七章 回调 回调是js异步的基本单元。随着js越来越成熟,对于异步编程的发展,回调已经不够用了。回调表达异步流的...

  • JS中的异步和回调

    因为JavaScript是单线程执行的,意味着同一个时间点,只有一个任务在运行。单线程就意味着,所有任务需要排队,...

  • 浅谈js中的回调地狱问题

    一、什么是回调地狱 说起回调地狱 首先想到的是异步在js中我们经常会大量使用异步回调,例如使用ajax请求 我们来...

  • node.js(六)

    Node.js 回调函数Node.js 异步编程的直接体现就是回调。异步编程依托于回调来实现,但不能说使用了回调后...

  • 2020-02-23

    Node.js回调函数 Node.js异步编程的直接体现就是回调 异步编程依托于回调来实现,但不能说使用了回调后程...

  • 初步讲解JS中的callback回调原理

    初步讲解JS中的callback回调原理 JS的异步执行机制 什么是异步执行 为了提高Javascript代码的运...

  • 07_Node.js Event

    一、回调函数 callback 1、回调函数 Node.js 异步编程的直接体现就是回调,异步编程依托于回调来实现...

  • 01node.js

    01、模块 02、关注学习 03、Node.js 回调函数Node.js 异步编程的直接体现就是回调。异步编程依托...

  • Node学习(3)--异步编程

    Node.js 回调函数 Node.js 异步编程的直接体现就是回调。 异步编程依托于回调来实现,但不能说使用了回...

网友评论

      本文标题:初识JS中的异步和回调

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