• JavaScript async/await 基础知识


    async

    • 作用: async函数返回一个 Promise对象,无论内部有没有await关键字.

    await

    • 作用: await等待的是一个表达式,这个表达式的计算结果是 Promise 对象 或者是其他值 (await可以等待任意表达式的结果)
    • 如果await的不是一个Promise对象, 那 await表达式的运算结果就是他等待的东西
    • 如果await的是一个Promise对象, await就会开始工作,它会阻塞后面的代码,等着Promise对象resolve,然后得到resolve的值,作为await表达式的运算结果
      这就是await必须用在async函数中的原因, async函数调用不会造成阻塞,它内部所有的阻塞都被封装在一个Promise对象中异步执行

    async/await 对比 Promise

    // async/await 方式
    async getBooks(id){
      const books = await boolModel.fetch()
      return books.filter(b => b.bookId == id) // 但是如果外部调用getBooks还需要返回books,依然需要.then()来得到值,因为 getBoos是被 async修饰的
    }
    
    // promise 方式
    getBooks(id){
      return bookModel.fetch()
        .then(books => books.filter(b => b.bookId == id))
    }
    

    通过对比可以得知: await处理了Promise返回的结果,不需要再使用.then()来出来Promise的结果

    Keep learning
  • 相关阅读:
    Redis命令——小白学习 Redis 数据库日记(2017-06-13)
    Buses(形容城市公车交通情况)
    Things you need to prepare before going to airport
    bathroom words
    this指针
    友元
    成员对象和封闭类
    静态成员变量和静态成员函数、 常量对象和常量成员函数
    C++类
    shell选择语句、循环语句
  • 原文地址:https://www.cnblogs.com/leslie1943/p/13353544.html
Copyright © 2020-2023  润新知