• 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回调

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了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中间件实现文件上传

相关文章

  • 帝国CMS二次开发付款后才能查看内容
  • Phpcms V9全站伪静态设置方法
  • Alexa优化技巧大全
  • 微信小程序反编译提取源代码方法
  • WordPress常见故障有哪些?怎么处理?
  • phpMyadmin怎么使用空密码登入
  • 百度统计、cnzz刷搜索词和来路链接原理,统计工具推广广告方法
  • PHP中如何理解foreach遍历二维数组
  • dplayer播放器整合苹果CMSV10方法
  • 如何手机端判断浏览器的类型(JavaScript)

文章分类

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

最近更新的内容

    • dedecms页面获取会员状态的代码
    • 让dedecms友情链接也支持limit
    • WordPress文章列表 添加文章内图片数量展示!
    • 趣味讲解Node.js中的回调函数(附示例)
    • PHP获取QQ用户昵称+头像API接口代码
    • PHP中连接符大于号、等号大于号的意思
    • Javascript怎么实现四位随机验证码
    • 你知道Laravel Collection的实际使用场景什么吗?
    • Photoshop制作颓废效果的金属立体字教程
    • 详解Thinkphp5整合grid++报表

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

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