所有异步编程的方法根本就是回调函数。

回调函数可以把它理解成一件你想要做的事情,你明确知道这件事情该怎么做,怎么一步一步的往下做,但是你并不知道这件事情所依赖的任务什么时候才能完成,所以说最好的办法把你这件事情的步骤写到一个函数当中,交给任务的执行者,这个异步任务的执行者它是知道这个任务是什么时候结束的,那他就可以在结束过后去帮你执行你想要做的事情,这件想要做的事情呢,其实我们就可以理解成回调函数。

以ajax为例,调用ajax操作,目的是为了拿到请求结果过后做一些事情,例如显示到界面上,但是这个请求何时能够完成,我们并不知道,所以我们得把得到结果过后要去执行的任务定义到一个函数当中,然后ajax在内部请求完成过后呢,它会自动执行这个任务

这种由调用者定义,交给执行者去执行的函数就称为回调函数

// 具体用法也很简单,他就是把函数作为参数去传递罢了function foo (callback) {setTimeout(function() {callback()}, 3000)
}foo(function() {console.log("这就是一个回调函数")
})

缺点:如果我们直接使用传统回调的方式去完成复杂的异步流程,就无法避免大量的回调函数嵌套,这也就会导致回调地狱问题。

javascript异步编程之回调函数相关推荐

  1. JavaScript异步编程【上】 -- 同步和异步、事件循环(EventLoop)、微任务和宏任务、回调函数

    文章内容输出来源:拉勾教育 大前端高薪训练营 前言 在我们学习JavaScript中,我们知道,JavaScript的执行环境是单线程的.所谓单线程是指一次只能完成一个任务,如果有多个任务,就必须排队 ...

  2. JavaScript 异步编程--Generator函数、async、await

    JavaScript 异步编程–Generator函数 Generator(生成器)是ES6标准引入的新的数据类型,其最大的特点就是可以交出函数的执行的控制权,即:通过yield关键字标明需要暂停的语 ...

  3. 写给初学者的JavaScript异步编程和背后思想

    导读: 对于接触JavaScript这门编程语言没有多久的本菜鸡而言,在相当长的一段时间内,我都完全无法理解这门语言中的异步编程,不明白什么叫异步编程以及为什么需要异步编程.为什么顺序执行程序就不行了 ...

  4. Javascript异步编程之一异步原理

    本系列的例子主要针对node.js环境,但浏览器端的原理应该也是类似的. 本人也是Javascript新手,把自己这段时间学习积累的要点总结下来,希望可以对同样在学习Javascript/node.j ...

  5. 网页javascript加载不出_写给初学者的JavaScript异步编程和背后思想

    导读:对于接触JavaScript这门编程语言没有多久的本菜鸡而言,在相当长的一段时间内,我都完全无法理解这门语言中的异步编程,不明白什么叫异步编程以及为什么需要异步编程.为什么顺序执行程序就不行了呢 ...

  6. JavaScript异步编程【下】 -- Generator、Async/await

    文章内容输出来源:拉勾教育 大前端高薪训练营 前言 在JavaScript异步编程[上]和 JavaScript异步编程[中]中,我们已经讲到了处理异步编程的两种方法:回调函数 和 Promise. ...

  7. JavaScript异步编程原理

    众所周知,JavaScript 的执行环境是单线程的,所谓的单线程就是一次只能完成一个任务,其任务的调度方式就是排队,这就和火车站洗手间门口的等待一样,前面的那个人没有搞定,你就只能站在后面排队等着. ...

  8. 【学习笔记】Part1·JavaScript·深度剖析-函数式编程与 JS 异步编程、手写 Promise(二、JavaScript 异步编程)

    [学习笔记]Part1·JavaScript·深度剖析-函数式编程与 JS 异步编程.手写 Promise(课前准备) [学习笔记]Part1·JavaScript·深度剖析-函数式编程与 JS 异步 ...

  9. JavaScript异步编程

    JavaScript异步编程 一.概述 1.单线程模型 2.同步任务和异步任务 3.任务队列和事件循环 4.异步操作的模式 回调函数 事件监听 发布/订阅 5.异步操作的流程控制 串行执行 并行执行 ...

  10. 前端JavaScript 异步编程详解

    目录 菜鸟教程官网 JavaScript 异步编程 异步的概念 详图 什么时候用异步编程 回调函数 概念 例如: 最后 菜鸟教程官网 地址 JavaScript 异步编程 异步的概念 异步(Async ...

最新文章

  1. Nature:口腔和肠道微生物可以使抗糖尿病药物(阿卡波糖)失活
  2. php nginx exec失败,小白问题:用nginx配置php后nginx无法启动。
  3. 新闻与传播c刊_新闻传播类c刊有哪些
  4. 论文阅读笔记三十三:Feature Pyramid Networks for Object Detection(FPN CVPR 2017)
  5. Node搭建静态资源服务器时后缀名与响应头映射关系的Json文件
  6. 面试必会系列 - 5.2 详解OSI模型与七层协议,网络TCP/IP基础,三次握手、四次挥手等
  7. RabbitMQ入门(四)-Routing(路由)
  8. Taro+react开发(31)微信小程序都是要通过编译的
  9. mysql安全性特点_MySQL数据库有哪些特点?为何能得到了广泛应用?
  10. vue spa页面在调用微信jssdk刷新才成功?
  11. php使用memcache处理缓存数据
  12. 地震预警,生死十秒,我们能做些什么?
  13. [改善Java代码]使用CyclicBarrier让多线程齐步走
  14. Windows内核编程(五)-驱动的调试
  15. 简单学生成绩管理系统Java版(GUI+Microsoft Access数据库)
  16. 基站的小区号256变换
  17. 中文版Cooledit2.1安装程序+插件
  18. 服务器上怎么强制删除文件夹,Windows10系统强制删除文件的方法
  19. MFS分布式文件系统
  20. 【机器学习-斯坦福】学习笔记1 - 机器学习的动机与应用

热门文章

  1. MATLAB判别分析-----2019/8/26
  2. vue图片懒加载 以及 页面刷新加载不显示大括号{{}}
  3. word文字上下间距怎么调_word文档里的文字上下左右之间的间距如何调整?
  4. 【Python】input()函数用法小结
  5. 计算机名称位数怎么改,请问下怎样更改电脑位数
  6. 在J.U.C多线程中,AQS维护这一个CLH同步队列,这个队列遵循着FIFO原则
  7. 爬取B站弹幕并生成HTML格式的词云图
  8. shell小技巧(五)把以abc开头的下一行以def结尾的两行替换成douyu
  9. winrm java客户端_java通过winrm4j远程连接win执行命令
  10. MATLAB修改证件照背景