美文网首页
Node - 模块与异步

Node - 模块与异步

作者: 酷热summer | 来源:发表于2020-05-08 16:55 被阅读0次

1、模块

  • File System: 操作系统文件的 API
  • Net : 可以使用操作系统的网络
  • Process: 记载 Nodejs 进程的一些信息
  • OS : 跟操作系统相关的一些 API
    • os.arch():表示操作系统的架构,如 32位、64位
    • os.cpus():获取当前设备的 CPU 信息

2、异步: 非阻塞 I/O

  • I/O: Input/Output,一个系统的输入和输出
  • 阻塞 I/O 和非阻塞 I/O 的区别在于系统接收输入再到输出的期间,能不能接收其他输入
const glob = require('glob');

let result = null;
let result2 = null;

console.time('glob');
result = glob.sync(__dirname + "/**/**");  
console.timeEnd('glob');        // 阻塞模式,执行完耗时14.778ms


console.time('glob1');
glob(__dirname + "/**/**", function (err, res) {
  result = res;
  console.log(result);
})
console.timeEnd('glob1');      // 非阻塞式,执行完耗时 2.963ms

3、异步: callback

  • 回调函数格式规范:
    • error - first callback
    • Node - style callback
  • 第一个参数是 error,后面的参数才是结果

4、异步: 事件循环

事件循环是 nodejs 实现非阻塞 I/O 的关键。

5、异步: Promise

5.1 定义

  • 当前事件循环得不到的结果,但未来的事件循环会给出结果
  • 是一个状态机制
    • pending
    • fullfilled/resolved
    • rejected

5.2 then 和 catch

  • resolved 状态的 Promise 会回调后面第一个 .then()
  • rejected 状态的 Promise 会回调后面第一个 .catch()
  • 任何一个 rejected 状态且后面没有 .catch 的 Promise ,都会造成浏览器 / node 环境的全局错误
  • .then() 和 .catch() 会返回一个全新的 Promise,该 Promise 的最终状态根据 then 和 catch 的回调函数的执行结果决定
    • 如果回调函数的最终是 throw,该 Promise 是 rejected 状态
    • 如果回调函数的最终是 return,该 Promise 是 resolved 状态
    • 如果回调函数最终返回了一个 Promise,该 Promise 会和回调函数 return 的 Promise 状态保持一致

如果出现多个并发请求的时候,可以使用:

 Promise.all([promise1, promise2])
.then(()=> {})
.catch(err=> {
  console.log(err);        //  此处只会捕获第一个抛出的异常
})

6、异步: async/await

相关文章

  • Node - 模块与异步

    1、模块 File System: 操作系统文件的 API Net : 可以使用操作系统的网络 Process: ...

  • 三:fs模块

    node的fs模块是文件模块,为node自带的模块,负责文件的读写。fs模块可以同步和异步读写文件 1. 异步读取...

  • 【Node.js】基于EventProxy模块的顺序异步调用

    【Node.js】基于EventProxy模块的顺序异步调用 [TOC] Tag:Node.js、WebStorm...

  • node.js基本模块-fs

    fs模块为node.js的内置模块,同时提供了同步和异步的方法。 简单回顾同步和异步的区别: 1.异步在执行I...

  • 01node.js

    01、模块 02、关注学习 03、Node.js 回调函数Node.js 异步编程的直接体现就是回调。异步编程依托...

  • Node 简介

    Node的特点 Node的特点有:异步I/O、事件与回调函数、单线程、跨平台 异步I/O 在Node中,异步I/O...

  • 阅读《深入浅出Webpack》和官方文档 -- 基础

    基础 模块化 CommonJS: 用于Node.js环境 AMD: 用于Node.js环境,浏览器。异步方式家在...

  • Node.js之fs用法详解

    Node.js 内置的fs模块就是文件系统模块,负责读写文件。和所有其他JS模块不同的是,fs模块同时提供了异步和...

  • Node.js 内置的fs模块使用

    Node.js 内置的fs模块就是文件系统模块,负责读写文件。和所有其他JS模块不同的是,fs模块同时提供了异步和...

  • Node.js 核心模块概述

    模块加载原理与加载方式 Node 中的模块:核心模块/原生模块:Node提供的模块。文件模块:用户编写的模块。 N...

网友评论

      本文标题:Node - 模块与异步

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