Nodejs新特性async和await的使用详解

 更新时间:2022年09月05日 09:53:24   作者:FatPuffer  
这篇文章主要介绍了Nodejs新特性async和await的使用,主要包括Es6常见语法的使用及Async、Await和Promise的示例代码,需要的朋友可以参考下

1.Es6常见语法的使用

1.letconst

let:是一个块作用域

if (true) {
    let a = 123;
}
console.log(a);  // a is not defined

const:定义常量

const PI = 3.1415926;
PI = 3.15  // Assignment to constant variable.
console.log(PI)

var:全局变量

2.箭头函数

setTimeout(() => {
    console.log("我被执行了")
}, 1000)

3.对象、属性和方法的简写

const name = "王五"
var person = {
    // "name": name
    // name: name
    name
}
console.log(person.name)
var name = "候七"
var app = {
    name,
    // run: function(){
    //     console.log(`${this.name}在跑步`)
    // },
    run(){
        console.log(`${name}在跑步`)
    }
}

app.run()

4.模板字符串

const name = "张三"
const age = 27
console.log(`${name}的年龄是${age}`)

5.Promise

主要用来处理异步,比如下面的示例

function getData(){
	// 异步
    setTimeout(function(){
        let name = "孙悟空";
        return name
    }, 1000)
}

console.log(getData())  // undefined

如果要在外面获取异步对象执行的结果,可以使用callback回调方式

function getData(callback){
    setTimeout(function(){
        let name = "孙悟空";
        callback(name);
    }, 1000)
}

getData(function(result){
    console.log(result)  // 孙悟空
})

Es6中新特性Promise方法

var p = new Promise(function(resolve, reject){
    setTimeout(function(){
        let name = "猪八戒";
        resolve(name)
    }, 1000);
})

p.then(function(data){
    console.log(data);
})

2.Async、Await和Promise

1.定义:

async是异步的简写,而await可以认为是async wait的简写,所以应该很好理解:async用于申明一个异步的fuction,而await用于等待一个异步方法执行完成。

2.简单示例

1.async方法通常应该返回一个Promise对象

async function test(){
	// 通常异步方法中返回一个Promise对象,如果给定的是字符串,内部也会将其转换为Promise对象
	return "hello nodejs";
}

console.log(test())

// Promise {[[PromiseState]]: 'fulfilled', [[PromiseResult]]: 'hello nodejs', Symbol(async_id_symbol): 5, Symbol(trigger_async_id_symbol): 1}
async function test(){
	return new Promise(function(resolve, reject){
        resolve("hello nodejs")
    })
}

console.log(test())

2.await方法必须在async方法中使用

async function test(){
	return new Promise(function(resolve, reject){
        resolve("hello nodejs")
    })
}

// console.log(await test())  错误写法

async function main(){
    let result = await test();  // await必须用在async方法中
    console.log(result)
}

main();

到此这篇关于Nodejs新特性async和await的使用的文章就介绍到这了,更多相关Nodejs async和await使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法

    node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法

    最近在工作中遇到一个问题,node.js请求HTTPS时报错:Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE\,通过查找网上的一些资料找到了解决方法,现在总结下分享给大家,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-12-12
  • Koa 中的错误处理解析

    Koa 中的错误处理解析

    这篇文章主要介绍了Koa 中的错误处理解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • Nodejs开发grpc的实例代码

    Nodejs开发grpc的实例代码

    Nodejs开发grpc包含静态和动态两种代码生成方式,静态代码生成需要提前通过.proto文件编译生成JS源码,而动态代码生成则是在运行时指定IDL文件位置,实时生成源码,两者各有优缺点,本文给大家介绍Nodejs开发grpc的实例代码,感兴趣的朋友一起看看吧
    2024-10-10
  • nvm mac 环境搭建过程

    nvm mac 环境搭建过程

    这篇文章主要为大家介绍了nvm mac 环境搭建过程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • NVM安装nodejs的方法实用步骤

    NVM安装nodejs的方法实用步骤

    安装node的方式有很多种,本文主要介绍了NVM安装nodejs的方法实用步骤,希望能帮助大家来解决问题,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • node 解析图片二维码的内容代码实例

    node 解析图片二维码的内容代码实例

    这篇文章主要介绍了node 解析图片二维码的内容代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 详解nodeJS之路径PATH模块

    详解nodeJS之路径PATH模块

    本篇文章主要介绍了详解nodeJS之路径PATH模块 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 详谈Node.js之操作文件系统

    详谈Node.js之操作文件系统

    下面小编就为大家带来一篇详谈Node.js之操作文件系统。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • NodeJS创建基础应用并应用模板引擎

    NodeJS创建基础应用并应用模板引擎

    这篇文章主要介绍了NodeJS创建基础应用并应用模板引擎的相关资料,需要的朋友可以参考下
    2016-04-04
  • Node.js操作redis实现添加查询功能

    Node.js操作redis实现添加查询功能

    Redis 是一个基于内存的键(key)值(value)类型的数据结构存储容器,它既可以完全工作在内存中,也可以持久化存储。当 Redis 工作于持久化模式时,可以将它当作一个非关系型数据库使用。
    2017-05-05

最新评论