<
ES6 Promise async/await
>
上一篇

ES6 基础知识
下一篇

面试问题大集合 巴拉巴拉
ES6 Promise async/await

Promise最大的好处是在异步执行的流程中,把执行代码和处理结果的代码清晰地分离了:

Promise传统写法

function p(url){
    return new Promise(function (resolve, reject){
        $.ajax({
          url,
          dataType: 'json',
          success(arr){
            resolve(arr)
          },
          error(err){
            reject(err);
          }
        })
    });
  }
    Promise.all([
      p('data/json.json'),
      p('data/arr.txt'),
      p('https://www.easy-mock.com/mock/5db284afd9f3aa5b4d9036e8/getList/#!method=get')
    ]).then(
      function(arr) {
        let [a,b,c] = arr;
        console.log("pass");
        console.log(a);
        console.log(b);
        console.log(c);
      },
      function (err) {
        console.log("fail");
        console.log(err);
      }
    );

Promise.all JQuery官方自带Promise标准写法

Promise.all([
  $.ajax({url:'data/json.json',dataType:'json'}),
  $.ajax({url:'data/arr.txt',dataType:'json'}),
  $.ajax({url:'https://www.easy-mock.com/mock/5db284afd9f3aa5b4d9036e8/getList/#!method=get',dataType:'json'}),
]).then(
  function(result) {
    let [a,b,c] = result;
    console.log("pass");
    console.log(a);
    console.log(b);
    console.log(c);
  },
  function (err) {
    console.log("fail");
    console.log(err);
  }
);

async/await是什么?

async 函数,就是 Generator 函数的语法糖,它建立在Promises上,并且与所有现有的基于Promise的API兼容。

  1. Async—声明一个异步函数(async function someName(){…})
  1. Await—暂停异步的功能执行(var result = await someAsyncCall();)

async/await相比于Promise的优势?

Top
Foot