当前位置: 首页 > news >正文

7.Nodejs新特性async和await的使用

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();
    

相关文章:

  • 怎么安装一个简单的vue3.0框架。整个流程.::
  • 【延展Extension Objective-C语言】
  • IDA* AcWing 181. 回转游戏
  • Web3小知识集锦
  • tensorflow基础
  • android自定义Apk名称和指定生成的路径
  • java框架----SSM快速整合教程
  • mongodb基本操作及使用
  • jQuery中的函数
  • leetcode:188. 买卖股票的最佳时机IV
  • 电脑技巧:Win7、Win10、Win11如何选择,看完你就懂了
  • 【初阶数据结构】堆排序和TopK问题
  • 筑梦远航 势不可挡|和数研究院四周岁啦
  • 广东2022年上半年系统集成项目管理工程师下午真题及答案解析
  • 【论文解读系列】NER方向:LatticeLSTM (ACL2018)
  • JavaScript 如何正确处理 Unicode 编码问题!
  • hadoop集群管理系统搭建规划说明
  • idea + plantuml 画流程图
  • laravel 用artisan创建自己的模板
  • leetcode46 Permutation 排列组合
  • MySQL的数据类型
  • PAT A1120
  • spring学习第二天
  • vagrant 添加本地 box 安装 laravel homestead
  • vue数据传递--我有特殊的实现技巧
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 看域名解析域名安全对SEO的影响
  • 在weex里面使用chart图表
  • 【云吞铺子】性能抖动剖析(二)
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • MyCAT水平分库
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​TypeScript都不会用,也敢说会前端?
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • $.ajax,axios,fetch三种ajax请求的区别
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (七)Knockout 创建自定义绑定
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (转)mysql使用Navicat 导出和导入数据库
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET多线程执行函数
  • .net经典笔试题
  • /etc/sudoers (root权限管理)
  • @EventListener注解使用说明
  • [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  • [《百万宝贝》观后]To be or not to be?
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [Android]How to use FFmpeg to decode Android f...
  • [bzoj1038][ZJOI2008]瞭望塔
  • [c++] 单例模式 + cyberrt TimingWheel 单例分析
  • [CareerCup] 14.5 Object Reflection 对象反射
  • [CC2642r1] ble5 stacks 蓝牙协议栈 介绍和理解
  • [ICCV2017]Neural Person Search Machines
  • [Linux]如何理解kernel、shell、bash