• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 浅谈Nodejs中的callback回调

浅谈Nodejs中的callback回调

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了Nodejs,callback回调等相关知识,希望对您有所帮助

本篇文章给大家介绍一下Nodejs中的callback回调。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。


浅谈Nodejs中的callback回调


什么是callback? 很显然,字面意思就是回调

那为什么在Node中需要回调操作呢?了解过Node的同学可能会知道,就是为处理异步操作的结果。


下面就是针对这个问题来详细说一下:

在说异步操作的callback回调之前,我们先看一下同步的操作模式:

function processData () {    var data = fetchData ();    data += 1;    return data;}

这种同步模式一般情况下可以正常工作,在其他开发环境下这种操作也是很典型的。然后可以明显的看到fectData方法如果在加载数据的时候很耗时,就会造成在数据同步加载完成之前整个程序阻塞的情况。

Node.js是一个异步的操作处理的平台,其使用callback回调的形式将不会被类似于文件I/O操作等阻塞。一个回调函数就是在一个给定的任务执行完成之后执行的函数;这种方式可以避免一些阻塞的情况,同时允许其他的代码继续执行。

我们使用Node.js的回调的形式去处理上面的同步操作fetchData耗时的情况:

function processData (callback) {    fetchData(function (err, data) {        if (err) {            console.log("An error has occurred. Abort everything!");            return callback(err);        }        data += 1;        callback(data);    });}

一开始看的话,确实会觉得有些复杂,不太容易理解,但是确实很重要,因为回调处理异步操作是Node.js的基础。

callback回调的意思就是:你的异步操作完成之后,你就执行我的callback回调里面的内容。

Node.js这种回调处理异步操作的形式允许我们尽可能多的处理并发操作(操作类似于IO操作)


举个例子:

在一个web服务上,前面有几个请求,由于某种原因阻塞了,同时之后还会有成百上千的请求正在发出;

Node.js会如何处理这种异步阻塞的情况呢?

其会执行异步的执行阻塞查询,使之后的查询请求可以正常工作,而不是说等待前面的阻塞请求结束之后,才去处理之后的请求。

下面是是使用异步函数的典型格式:

function asyncOperation ( a, b, c, callback ) {    // ... lots of hard work ...    if ( /* an error occurs */ ) {        return callback(new Error("An error has occurred"));    }    // ... more work ...    callback(null, d, e, f);} asyncOperation ( params.., function ( err, returnValues.. ) {    //This code gets run after the async operation gets run});

callback一般是异步函数的做后一个参数,当异步操作结束之后,去调用这个callback。

一般情况下,callback的第一个参数是error

如果异步操作遇到了错误,就会去调用callback,第一个参数是一个Error对象;反之,第一个error为null,其他参数正常返回。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 如何升级或修改nodejs的版本
  • Nodejs路由可通过什么模块实现的
  • 实战分享:利用nodejs​爬取并下载一万多张图片
  • Nodejs中如何定义全局变量
  • 浅谈Nodejs中的callback回调
  • nodeJS把json数据转成excel(xlsx文件)输出
  • 浅谈nodejs利用node-xlsx模块读取excel数据的方法
  • 聊聊Nodejs获取参数的四种方法
  • 浅析利用nodejs怎么给图片添加半透明水印(方法详解)
  • Nodejs+express中间件实现文件上传

相关文章

  • 2022-04-29如何利用CSS制作一个聚光灯效果(附代码)
  • 2022-04-29PHP中静态方法可以访问非静态方法吗
  • 2022-04-29Photoshop制作梦幻效果的光圈教程
  • 2022-04-29PhotoShop设计打造品牌艺术字LOGO效果教程
  • 2022-04-29PHP怎么上传图片改文件名
  • 2022-04-29Photoshop制作复古黄金文字效果
  • 2022-04-29IllustratorUI设计教程:解析多重填充与多重描边
  • 2022-04-29vue2&vue3数据响应式原理分析及手动实现(实例详解)
  • 2022-04-29一招教你使用Node.js中iis部署运行node(附代码)
  • 2022-04-29PHP调用今天的日期几月星期几

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 利用CSS如何实现全兼容的毛玻璃效果?
    • wordpress前端图片怎么上传
    • AI制作立体三维线条字母标志
    • CSS实现领积分动画效果
    • 浅谈Bootstrap中如何上传图片
    • MySQL主键还需要建立索引吗?
    • 如何解决php方法执行时间过长的问题
    • vue-cli-service不是内部或外部命令怎么解决
    • Photoshop制作超逼真缝线效果
    • Phpcms V9后台登录地址修改方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有