iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Node.js中ES6模块化及Promise对象怎么使用
  • 560
分享到

Node.js中ES6模块化及Promise对象怎么使用

2023-07-02 14:07:23 560人浏览 泡泡鱼
摘要

本文小编为大家详细介绍“node.js中es6模块化及Promise对象怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“node.js中ES6模块化及Promise对象怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一

本文小编为大家详细介绍“node.jses6模块化及Promise对象怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“node.js中ES6模块化及Promise对象怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

ES6模块化

CommonJS 规范

node.js 遵循了 CommonJS 的模块化规范。其中:

  • 导入其它模块使用 require()方法

  • 模块对外共享成员使用 module.exports 对象

模块化开发好处

模块化开发的好处有很多,其中:

  • 实现了在JS文件中引用其他文件

  • 避免命名冲突的问题

  • 大家都遵守同样的模块化规范写代码,降低了沟通的成本,极大方便了各个模块之间的相互调用

  • 只需关心当前模块本身的功能开发,需要其他模块的支持时,在模块内调用目标模块即可

模块化规范划分

在 ES6 模块化规范诞生之前,javascript 社区已经尝试并提出了 AMD 、 CMD 、 CommonJS 等模块化规范。 但是,这些由社区提出的模块化标准,还是存在一定的差异性与局限性、并不是浏览器与服务器通用的模块化标准

  • AMD 和 CMD 适用于浏览器端的 Javascript 模块化

  • CommonJS 适用于服务器端的 Javascript

模块化太多的模块化规范给开发者增加了学习的难度与开发的成本。因此,官方的 ES6 模块化规范诞生了!

ES6模块化开发注意点

node.js 中默认仅支持 CommonJS 模块化规范,若想基于 node.js 体验与学习 ES6 的模块化语法,需要按照如下两个步骤进行配置:

  • 确保安装了 v13.0.0 或更高版本的 node.js

  • 在 package.JSON 的根节点中添加 "type": "module" 节点

  • 配置之后,则只能使用ES6模块化语法,不能再使用CommonJS语法了

ES6 导入导出

主模块:

// //导入子模块// //方法1.默认导入  不能解构接收// import obj from './02-子模块.js'// console.log(obj);// //不能再接收位置直接解构//import { fn, num } from './02-子模块.js'//方法2.按需导入// import { str, fn2 } from './02-子模块.js'// console.log(str);// fn2//import bbb from './02-子模块.js'//方法3.只导入 不接收 使用的是功能import './02-子模块.js'//es6也有缓存机制

子模块:

//导出内容//方法1.默认导出一次  不允许导出多次// const num = 123// function fn() {//   console.log('我是函数fn');// }// export default { fn, num }//方法2.按需导出  可以导出多次//必须定义的时候就导出// export const str = 'abc'// export function fn2() {//   console.log('我是函数fn2');// }//方法3.不导出任何数据  让别人使用自己的功能for (let i = 0; i < 3; i++) {  console.log('重要的事情说三遍!');}

Promise对象

异步操作是 JavaScript 编程的麻烦事,麻烦到一直有人提出各种各样的方案,试图解决这个问题。早期使用回调函数处理异步编码,但存在回调地狱的问题。ES6中,新增了Promise 对象,从此异步编程摆脱了回调函数的束缚。

使用语法

let p = new Promise((resolve, reject) => {    // ... some code    if () {        resolve(value);    } else {        reject(error);    }});

注意点:

  • new Promise()

  • 必须传入一个函数作为Promise的参数,这个函数在 new Promise的时候就会执行

  • 函数有 resolve 和 reject 两个形参

  • 函数就相当于一个容器,可以将异步任务放到这里

  • 将异步任务成功的结果传给 resolve 函数;将失败的信息传给 reject 函数

p.then(    result => {  });// 或者p.then(    result => {  },    err => {  });// 或者p.then(    result => {  }).catch(    err => {  });

注意点:

  • then方法接收以个函数类型的参数,只处理成功

  • then方法接收两个函数类型的参数,分别用于接收 resolve 的值 和 reject 的值

  • then方法也可以只接收一个参数,表示只接收 resolve 的值,失败的结果可以通过链式调用catch方法捕获

Promise中的同步异步

new Promise 和 new 其他对象一样,是同步任务。

获取结果时(调用 resolve 触发 then方法时)是异步的。

Promise 封装

// 封装function myReadFile(filename) {    return new Promise((resolve, reject) => {        fs.readFile(filename, 'utf-8', (err, data) => {            err ? reject(err) : resolve(data.length);        })    });}// 调用myReadFile('./files/a.txt')    .then(a => {        console.log(a);        return myReadFile('./files/b.txt');    })    .then(b => {        console.log(b);        return myReadFile('./files/c.txt');    })    .then(c => {        console.log(c)    })

第三方then-fs解决回调地狱

// npm  i  then-fsconst fs = require('then-fs');fs.readFile('./files/a.txt', 'utf-8')    .then(res1 => {        console.log(res1);        return fs.readFile('./files/b.txt', 'utf-8')    })    .then(res2 => {        console.log(res2);        return fs.readFile('./files/b.txt', 'utf-8')    })    .then(res3 => {        console.log(res3)    })

注意:未来很多模块支持Promise对象开发,就是返回的是一个Promise对象; 如 axiOS

读到这里,这篇“Node.js中ES6模块化及Promise对象怎么使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: Node.js中ES6模块化及Promise对象怎么使用

本文链接: https://www.lsjlt.com/news/342630.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Node.js中ES6模块化及Promise对象怎么使用
    本文小编为大家详细介绍“Node.js中ES6模块化及Promise对象怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Node.js中ES6模块化及Promise对象怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
    99+
    2023-07-02
  • Node.js中ES6模块化及Promise对象
    目录ES6模块化CommonJS 规范模块化开发好处模块化规范划分ES6模块化开发注意点ES6 导入导出Promise对象使用语法Promise中的同步异步Promise 封装第三方...
    99+
    2024-04-02
  • ES6中怎么使用Promise对象
    这期内容当中小编将会给大家带来有关ES6中怎么使用Promise对象,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在promise之前处理异步回调的方式function&...
    99+
    2024-04-02
  • ES6中如何使用Promise对象
    这篇文章主要介绍了ES6中如何使用Promise对象的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ES6中如何使用Promise对象文章都会有所收获,下面我们一起来看看吧。在promise之前处理异步回调的方式...
    99+
    2023-06-17
  • es6中promise怎么使用
    这篇文章主要介绍了es6中promise怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇es6中promise怎么使用文章都会有所收获,下面我们一起来看看吧。es6 promise用于异步编程。Promi...
    99+
    2023-07-04
  • Promise对象怎么在Nodejs中使用
    这期内容当中小编将会给大家带来有关Promise对象怎么在Nodejs中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Promise对象1. promise用来做什么?我们的需求是一次的去执行异步代码...
    99+
    2023-06-14
  • ES6模块怎么使用
    本篇内容主要讲解“ES6模块怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ES6模块怎么使用”吧!ES6 引入了模块化,其设计思想是在编译时就能确定模块的依赖关系,以及输入和输出的变量。...
    99+
    2023-06-03
  • Node.js的模块化机制和Buffer对象是什么
    本篇内容主要讲解“Node.js的模块化机制和Buffer对象是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js的模块化机制和Buffer对象是什么”吧!一、Node.js的模块...
    99+
    2023-06-29
  • Node.js Exports 对象:模块化设计中的技术突破
    Node.js Exports 对象是一个内置对象,用于导出模块中定义的变量、函数和类。它通过提供一种标准化且高效的方式在不同模块之间共享功能,在 Node.js 模块化设计中扮演着至关重要的角色。 Exports 对象的优点 模块化设...
    99+
    2024-04-02
  • Node.js Exports 对象:模块化编程中的瑞士军刀
    实现 要为模块定义 Exports 对象,请使用 module.exports 语法。它是一个全局变量,默认指向一个空对象。您可以向 Exports 对象添加属性或方法,从而将其作为模块的公共接口: // module.js module...
    99+
    2024-04-02
  • Node.js Exports 对象:模块化编程中的最佳实践
    1. 命名导出(ES6) 命名导出使用 ES6 引入,提供更清晰和简洁的语法。它使用 export 关键字来导出变量、函数或对象: // module.js export const myVariable = "value"; expor...
    99+
    2024-04-02
  • Node.js使用方式及模块化的方法
    本篇内容介绍了“Node.js使用方式及模块化的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是Node.js Node.js 是一...
    99+
    2023-06-29
  • Node.js中的http模块是什么及怎么使用
    本篇内容介绍了“Node.js中的http模块是什么及怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、什么是http在百度百科的解...
    99+
    2023-07-04
  • 掌握node.js exports对象,打造高效模块化应用
    exports 的用法 exports 对象是一个简单的 JavaScript 对象,可以用来将其属性导出为模块的一部分。要将变量或函数导出到模块中,只需将它们分配给 exports 对象即可: // 模块文件 my-module.js ...
    99+
    2024-04-02
  • Node.js中SerialPort模块怎么使用
    这篇文章主要讲解了“Node.js中SerialPort模块怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Node.js中SerialPort模块怎么使用”吧!目的上位机与各种电路模...
    99+
    2023-06-21
  • Node.js中的EventEmitter模块怎么使用
    本篇内容主要讲解“Node.js中的EventEmitter模块怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js中的EventEmitter...
    99+
    2024-04-02
  • Node.js中的http模块怎么使用
    本篇内容介绍了“Node.js中的http模块怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、什...
    99+
    2024-04-02
  • 怎么在Node.js中使用http模块
    这篇文章将为大家详细讲解有关怎么在Node.js中使用http模块,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。HTTP协议要理解Web服务器程序的工作原理,首先,我们要对HTTP协议有基本...
    99+
    2023-06-14
  • Node.js中的VM模块怎么使用
    本篇内容主要讲解“Node.js中的VM模块怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js中的VM模块怎么使用”吧!参考文献 vm 虚拟机...
    99+
    2024-04-02
  • Node.js中的path模块怎么使用
    这篇“Node.js中的path模块怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Node.js中的path模块怎么...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作