首页 > 解决方案 > 使用 await Promise.all 的 Javascript 语法

问题描述

我试图理解下面使用 await Promise.all 的代码/语法;如何从端点响应分配数组?

const getState = async (code) => {
    try {
      const [
        {data: dataResponse},
        {data: stateDistrictWiseResponse},
        {data: statesDailyResponse},
        {data: stateTestResponse},
        {data: sourcesResponse},
        {data: zonesResponse},
      ] = await Promise.all([
        axios.get('https://example.org/data.json'),
        axios.get('https://example.org/state_district_wise.json'),
        axios.get('https://example.org/states_daily.json'),
        axios.get('https://example.org/state_test_data.json'),
        axios.get('https://example.org/sources_list.json'),
        axios.get('https://example.org/zones.json'),
      ]);      
      console.log(stateTestResponse.states_tested_data);
    }
}

标签: javascriptecmascript-6es6-promise

解决方案


Promise.all将一组 Promise 转换为一组结果。

axios.get返回一个承诺,当解决时,返回一个具有形状的对象{ data: <result goes here>

您的代码正在解构返回数组中的这些对象。


推荐阅读