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


    1.Es6常见语法的使用

    1.letconst
    • let:是一个块作用域
      if (true) {
          let a = 123;
      }
      console.log(a);  // a is not defined
      
      • 1
      • 2
      • 3
      • 4
    • const:定义常量
      const PI = 3.1415926;
      PI = 3.15  // Assignment to constant variable.
      console.log(PI)
      
      • 1
      • 2
      • 3
    • var:全局变量
    2.箭头函数
    setTimeout(() => {
        console.log("我被执行了")
    }, 1000)
    
    • 1
    • 2
    • 3
    3.对象、属性和方法的简写
    const name = "王五"
    var person = {
        // "name": name
        // name: name
        name
    }
    console.log(person.name)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    var name = "候七"
    var app = {
        name,
        // run: function(){
        //     console.log(`${this.name}在跑步`)
        // },
        run(){
            console.log(`${name}在跑步`)
        }
    }
    
    app.run()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    4.模板字符串
    const name = "张三"
    const age = 27
    console.log(`${name}的年龄是${age}`)
    
    • 1
    • 2
    • 3
    5.Promise
    • 主要用来处理异步,比如下面的示例
      function getData(){
      	// 异步
          setTimeout(function(){
              let name = "孙悟空";
              return name
          }, 1000)
      }
      
      console.log(getData())  // undefined
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
    • 如果要在外面获取异步对象执行的结果,可以使用callback回调方式
      function getData(callback){
          setTimeout(function(){
              let name = "孙悟空";
              callback(name);
          }, 1000)
      }
      
      getData(function(result){
          console.log(result)  // 孙悟空
      })
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
    • Es6中新特性Promise方法
      var p = new Promise(function(resolve, reject){
          setTimeout(function(){
              let name = "猪八戒";
              resolve(name)
          }, 1000);
      })
      
      p.then(function(data){
          console.log(data);
      })
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10

    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}
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      async function test(){
      	return new Promise(function(resolve, reject){
              resolve("hello nodejs")
          })
      }
      
      console.log(test())
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
    • 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();
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
  • 相关阅读:
    vue中打印指定dom元素
    Linux命令(89)之xargs
    SpreadsheetGear V9 2023 Crack
    QP状态机学习③——STM32F4移植QP状态机Keil环境
    知识表示学习(四):TransD
    菏泽2万亩谷子收割 国稻种芯·中国水稻节:山东节水抗旱稻
    反转字符串II
    MySQL的DDL语句
    【计算机体系知识】操作系统笔记(持续更新)
    SEGGER Embedded Studio IDE移植FreeRTOS
  • 原文地址:https://blog.csdn.net/qq_42517220/article/details/126669865