【发布时间】:2020-08-02 07:27:16
【问题描述】:
我想做的事: 我有一系列书名。例如
var bookTitleArray = ["1984", "clockwork Orange"];
对于这个数组,我想通过 axios 调用 API 并获取每个标题的详细信息。
到目前为止我做了什么: 为此,我创建了一个调用 axios 的 array.map 请求,该请求被包装到一个异步函数中。
axios async 函数如下所示:
async function axiosWrapper (Item){
var ItemPromise = axios.request({
url: 'some URL',
method: 'get',
baseURL: 'some URL',
headers: {
'Authorization': 'some authorization'
}
})
var axiosResult = await ItemPromise;
return axiosResult
}
我已经控制台记录了 axiosResult,它返回了正确的数据。因此 axios 似乎可以工作
与 promise.all 的异步如下所示:
async function mapWrapper(ArrayToRunThrough){
var promiseArray = ArrayToRunThrough.map(Item => {
axiosWrapper(Item)
})
var ArrayOfResults = await Promise.all(promiseArray);
console.log(ArrayOfResults);
}
最后我用我想搜索的书籍数组调用 mapWrapper
mapWrapper(bookTitleArray)
我的经历:不幸的是,我只得到了两个“未定义”数组。
我的假设:我假设 Promise.all / await 不能按预期工作。
我需要帮助:如何在“ArrayOfResults”中的此设置中从 Axios API 调用中获取实际值?
【问题讨论】:
-
当箭头函数有块体时,即
=>{...}你需要明确地做一个return
标签: javascript promise axios es6-promise