node.js如何使用回调
Node.js到处使用回调,尤其在有I/O(输入/输出)操作的地方。
下面是在一个Node.js中使用filesystem模块中从磁盘上读入文件内容示例一:
- var fs = require('fs');
- fs.redFile('somefile.txt', 'urf8', function (err, data) {
- if (err throw err);
- console.log(data);
- });
以下是所发生的事情:
1、fs(filesystem)模块被请求,以便在脚本中使用
2、将文件系统上的文件路径作为第一个参数提供给fs.readFile 方法
3、第二个参数是utf8,表示文件的编码
4、将回调函数所谓第三个参数提供给fs.readFile方法
5、回调函数的第一个参数是err,用于保存在读取文件是返回的错误
6、回调函数的第二个参数data,用于保存读取文件所返回的数据
7、一旦文件被读取,回调函数就会被调用,如果err为真则抛出错误,否则来自文件上的数据就会被记录在控制台上
实例二:
- var http = require('http');
- http.get({host:'shapeshed.com'}, function(res){
- console.kis('Got response: " + res.statusCode');
- }).on(‘error’,function(e) {
- console.lso("Got error: " + e.message);
- })
代码解释:
1、请求http模块
2、给http.get提供两个参数
3、第一个参数是选项对象,即要求获取shepeshed.com的主页
4、第二个参数是一个以响应作为参数的回调函数
5、当远程服务器返回响应式,会触发回调函数
6、在回调函数内记录响应状态码,如果有错误就将其记录下来
node.js如何使用回调的更多相关文章
- node.js中的回调
同步和阻塞:这两个术语可以互换使用,指的是代码的执行会在函数返回之前停止.如果某个操作阻塞,那么脚本就无法继续,这意味着必须等待. 异步和非阻塞:这两个术语可以互换使用,指的是基于回调的.允许脚本并行 ...
- Node.js标准的回调函数
Node.js标准的回调函数:第一个参数代表错误信息,第二个参数代表结果. function (err, data) 当正常读取时,err参数为null,data参数为读取到的String.当读取发生 ...
- 【Node100In1】01.去异步,解决掉Node.js万恶的回调陷阱
Node.js是基于事件驱动编程.异步函数随处可见,其中不乏一些常用库的方法.本例就以js中最常见的setTimeout的为例,试图改善一下回调的书写. 先来看一段伪代码: 我们实现一个需求,每隔一段 ...
- Node.js链式回调
由于异步的关系,代码的书写顺序可能和执行顺序并不一样,可能想先执行A再执行B,但由于异步可能B要先于A执行.例如在OC中使用AFnetworking请求数据然后刷新页面,由于网络请求是用block实现 ...
- node.js异步控制流程 回调,事件,promise和async/await
写这个问题是因为最近看到一些初学者用回调用的不亦乐乎,最后代码左调来又调去很不直观. 首先上结论:推荐使用async/await或者co/yield,其次是promise,再次是事件,回调不要使用. ...
- node.js的作用、回调、同步异步代码、事件循环
http://www.nodeclass.com/articles/39274 一.node.js的作用 I/O的意义,(I/O是输入/输出的简写,如:键盘敲入文本,输入,屏幕上看到文本显示输出.鼠标 ...
- Node.js学习——基本模块之fs
基本模块之fs 异步读文件 异步读取一个文本文件的代码如下: 'use strict'; var fs = require('fs'); fs.readFile('sample.txt', 'utf- ...
- Node.js使用fs.renameSync报cross-device link not permitted错误
在Node.js中,我们可以使用formidable模块来轻松地实现文件上传功能,代码如下: var Q = require('q'); var util = require('util'); var ...
- 【360开源】thinkjs:基于Promise的Node.js MVC框架 (转)
thinkjs是360奇舞团开源的一款Node.js MVC框架,该框架底层基于Promise来实现,很好的解决了Node.js里异步回调的问题.360奇舞团(奇虎75Team),是奇虎360公司We ...
随机推荐
- 【5】说说Laravel5的blade模板
首先看一下以前的程序 routes.php PagesController.php resources/views/pages/about.blade.php 现在我们来简单的使用一下blade模板的 ...
- 关于bootStrapdialog 学习心得
在用play这个框架做项目的时候,我们的背景以及一些插件用的都是 bootStrap3.0的JS以及CSS 这次用到的bootStrapdialog 所需要演示的效果 就是 在一个网页系统里, 当你 ...
- talos项目记录
1. 跑schedule : php src/cli-schedule/cli.php -a sales.coupon.offer-coupons 所用方法在schedule里
- 优化PHP代码的40条建议(转载)
[size=5][color=Red](译文)优化PHP代码的40条建议[/color][/size] 40 Tips for optimizing your php Code 原文地址:http:/ ...
- Jasper_plug_install
1.open eclipse -> Help -> Eclipse Marketplace. 2.at new window, find jasper, will find Jaspers ...
- 2014年总结:我的IT路
又是一年春节时,转眼之间已经毕业4年,简单回顾一下这几年的职业生涯,希望大家提出宝贵意见. 大学时,几个同学跟着学校网络中心的老师一块做校园网上运行的小系统.偶尔协助一下老师对学校机房.校园网做一下维 ...
- LightOj 1230 Placing Lampposts(树形DP)
题意:给定一个森林.每个节点上安装一个灯可以覆盖与该节点相连的所有边.选择最少的节点数num覆盖所有的边.在num最小的前提下,合理放置num个灯使得被两个灯覆盖的边最多? 思路:F[i][0]代表没 ...
- 在C中嵌入汇编
早前公布了C和汇编混编的温度控制器程序,收到一些朋友的询问,他们无法在自己程序中使用我的18B20的汇编子程序或无法正常通过混编后的程序编译. 其实在KEIL中嵌入汇编的方法很简单.如图一,在C文件中 ...
- 在FMX中实现PostMessage的方法
在FMX中实现PostMessage的方法 http://www.qdac.cc/?p=1090 2014-10-31 • Android.C++ Builder.Delphi.杂谈 • 4条评论 • ...
- hdu 1506 Largest Rectangle in a Histogram(单调栈)
L ...