美文网首页
8 NodeJS笔记

8 NodeJS笔记

作者: brightsunp | 来源:发表于2018-05-03 20:53 被阅读0次

1 异步编程

Node采用V8引擎处理JS脚本,最大特点就是单线程运行,一次只能运行一个任务;这导致大量采用异步操作,即任务不马上执行,而是插在任务队列的尾部,等前面的任务运行完再执行。
约定:回调函数应该是某个函数的最后一个参数;回调函数的第一个参数,是上一步传入的错误对象(没有错误传入null)。原因是传统的try...catch机制对异步操作行不通,只能把错误交给回调函数来处理。

# 异步
var task = function(value, callback) {
    if (value === true) {
        callback(null, "Value was true.");
    } else {
        callback(new Error("Value is not true!"));
    }
};

var callback = function(error, value) {
    if (error) {
        return console.log(error);
    }
    console.log(value);
};

# 同步
function main() {
    syncA();
    syncB();
    syncC();
}
try {
    main();
} catch (error) {
    // Deal with exception.
}

2 异常处理

Node是单线程运行环境,所以一旦抛出的异常没有被捕获,将会引起整个进程的崩溃。

2.1 try...catch

无法捕获异步代码抛出的异常;所以Node在很少的场合使用try/catch语句,比如JSON.parse解析JSON文本。

2.2 回调函数

将错误对象作为回调函数的第一个参数,就避免了捕获代码与发生错误不在同一个时间段的问题。

fs.readFile('./foo.txt', function(err, data) {
    if (err !== null) throw err;
    console.log(data);
});

2.3 EventEmitter的error事件

var EventEmitter = require('events').EventEmitter;
var emitter = new EventEmitter();
emitter.emit('error', new Error('Something bad happened'));
# 对error事件部署监听函数
emitter.on('error', function(err) {
    console.log('Error: ' + err.message);
});

2.4 uncaughtException和unhandledRejection事件

以后再整理。

3 网络操作

相关文章

  • 8 NodeJS笔记

    1 异步编程 Node采用V8引擎处理JS脚本,最大特点就是单线程运行,一次只能运行一个任务;这导致大量采用异步操...

  • 什么是 Node

    NodeJS笔记 什么是 Node NodeJS 是一个构建于Chrome V8 引擎之上的一个JavaScri...

  • 2018-08-21nodejs

    Nodejs学习笔记 一、 NodeJs介绍 什么是NodeJS,在应用程开发中起什么作用? Nodejs是一个应...

  • 57/666 HJDS npm read | is-sorted

    这是666计划的57篇笔记 nodejs sort demo.js: index.js: nodejs array...

  • V8垃圾回收机制

    文章地址 本文是深入浅出nodejs的部分学习笔记 V8内存限制 在node中javascript能使用的内存是有...

  • 第8章 Vue项目预热

    8-1.NodeJS安装 根据自己电脑是什么系统去安装:NodeJS安装 8-2.vue脚手架安装 8-3.运行脚...

  • nodejs笔记8(文件系统)

    Node.js 提供一组类似 UNIX(POSIX)标准的文件操作API。 Node 导入文件系统模块(fs)语法...

  • 程序日记2018-05-05

    github webhook自动部署nodejs项目 1.服务器环境: centos 7 nodejs 8 ngi...

  • linux安装nodejs

    到nodejs.org下载wget http://nodejs.org/dist/latest-v8.x/node...

  • [mark] nodeJS 入门

    认识 v8 引擎 深入理解nodeJS单线程 浅析NodeJS单线程模型 nodejs 初步认知 存在一个主线程,...

网友评论

      本文标题:8 NodeJS笔记

      本文链接:https://www.haomeiwen.com/subject/hmglrftx.html