分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

Node.js前置知识点(一):回调函数

发布时间:2023-09-06 01:39责任编辑:蔡小小关键词:js回调函数Node

前言

因为开始了解和学习Node.js,发现在使用之前,有必要先知道一些前置的知识点(其实是关于操作系统的知识),主要包括:

  • 什么是 回调函数(callback);
  • 什么是 同步/异步;
  • 什么是 I/O;
  • 什么是 单线程/多线程;
  • 什么是 阻塞/非阻塞;
  • 什么是 事件 和 事件驱动;
  • 什么是 基于事件驱动的 回调;
  • 什么是 事件循环;

本文就是系列文章的第一篇,用来介绍回调函数。(参考来源 见文末的 Reference)

一 什么是 回调函数(callback)

我觉得理解一个概念,应该是从简单到复杂,从应用到原理,从现象到本质,简言之,就是从浅入深。
所以,让我们先从表面入手,回调函数,可以先粗浅的理解为:

A "callback" is any function that is called by another function which takes the first function as a parameter.

即:在一个函数中调用另外一个函数就是callback

如以下简单的代码,就是一个 回调函数的例子:

function callback() { ???alert("I am in the callback!");}function work(func) { ???alert("I am calling the callback!"); ???func(); }work(callback);

上面的例子里,callback函数作为一个变量,传入函数work 中;
并且在work 中被调用。

所以结论1:
回调函数就是,可以被当做变量——传入给其他函数B调用的——函数A;

二 回调函数的 流程&应用

从上文我们知道,回调函数其实 就是 传入其他主体函数 的函数变量,

知道了概念,接下来我们再明确一下 回调函数的工作流程:
?? S1 创建一个函数A,它可以用来做加法;
?? S2 创建一个延时函数B,可计算时长(实际都有 库函数提供的API实现);
?? S3 我们把A传入B,作为参数,这一步就叫做 登记回调函数
?? S4 在B里调用执行力 传入的函数A,这一步就叫做 调用回调函数

以上我们就创建了回调函数A,它实现的功能就是:
?? 在10s后,返回一个执行了加法操作的 结果;

要实现这个功能其实很简单,那么我们为什么要引入 回调函数呢?
这就得提到 抽象的作用了。
在上面的例子里,A的作用是执行一个加法运算,但是如果我们是想做乘法、除法、排序等等其他操作呢? B的作用是延时,但如果是想要 响应点击、提交等其他事件呢?

所以,引入回调函数:是为了我们能够根据传入函数A功能的不同,方便的执行更广泛、更灵活的功能要求,而且还能保持代码的整洁和维护。

以上就是对回调函数的理解。(其实也涉及到了事件的概念)
最后再上一个通俗的解释,以便理解:

你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。
在这个例子里,你的电话号码就叫回调函数;
你把电话留给店员就叫登记回调函数,
店里后来有货了叫做触发了回调关联的事件,
店员给你打电话叫做调用回调函数,
你到店里去取货叫做响应回调事件.

三 Refernce:

??知乎问题:回调函数是什么

Node.js前置知识点(一):回调函数

原文地址:https://www.cnblogs.com/ygming/p/8340686.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved