zoukankan      html  css  js  c++  java
  • async await一些小结

    // MDN: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/async_function
      // async await 是基于promises的语法糖,使异步代码更易于编写和阅读。
      // 通过使用它们,异步代码看起来更像是老式同步代码
    
      /***
       * async 关键字,放在函数声明之前,使其成为 async function
       * 调用该函数会返回一个 promise
       * ***/
      async function hello() {
        return 'Hello'
      }
    
      hello().then(s => {
        console.log(s)
      })
    
      hello().then(console.log)
    
      /*****
       * await 关键字 只在async function里面才起作用。
       * 它可以放在任何异步的,基于 promise 的函数之前。
       * await 关键字使JavaScript运行时暂停于此行,允许其他代码在此期间执行,直到异步函数调用返回其结果。一旦完成,您的代码将继续从下一行开始执行。
       * ****/ 
      async function hello2() {
        return await Promise.resolve("Hello2");
      };
    
      hello2().then(console.log);
    
      /****
       * await 普通值
       * ***/ 
      async function hello3() {
        return await 'Hello3'
      };
    
      hello3().then(console.log)
    
      /***
       * 添加错误处理 可添加try...catch 或者 在hello4().catch中处理 
       * ***/ 
      async function hello4(a) {
        a / b
    
        return await 'Hello4'
      }
    
      hello4().then(console.log).catch(e => {
        console.log('出错了...', e)
      })
    
      // 没有使用async的普通函数,使用await会报错
      // function testAwait() {
      //   // 报错1
      //   await Promise.resolve(2)
    
      //   return new Promise((resolve, reject) => { 
      //     // 报错2
      //     await Promise.resolve(2)
      //     resolve(4)
      //   })
      // }
  • 相关阅读:
    不能执行已释放的Script的代码(ie错误)
    javascript数组
    Jquery遍历方法
    Jquery选择器汇总
    使用xmlHttprequest 发送异步请求(Ajax核心对象)
    不使用局部变量和for循环或其它循环打印出如m=19,n=2結果为2 4 8 16 16 8 4 2形式的串
    解决Js跨域访问的问题
    Oracle 第一天
    计算机图形学1——绪论
    数据库
  • 原文地址:https://www.cnblogs.com/zkpThink/p/14479062.html
Copyright © 2011-2022 走看看