【发布时间】:2019-08-30 22:13:48
【问题描述】:
我需要从 API 获取一些 JSON 数据并将结果分配给一个变量。我可以在控制台中看到数据数组,但 [abc] 始终设置为待处理的承诺。
我尝试分配 [abc] 而不是记录 [data] 或简单地返回 [data] 但它不起作用。 理想情况下,我还想停止执行以下代码,直到获得所需的数据,但使用我拥有的代码,文本会在数据之前记录
async function fetchData()
{
let response = await fetch('API');
let data = await response.json();
data = JSON.stringify(data);
data = JSON.parse(data);
return data;
}
let abc = await fetchData()
.then(data => console.log(data));
console.log('This should not be logged if 'abc' does not have the data i need')
(data => console.log(data)) ..>> 这里的数据是我需要的数组,但我不知道如何分配变量。
我在互联网上寻找了许多解决方案,但找不到任何有用的方法。
编辑1:
如果我分配: 让 abc = 等待 fetchData() 如果没有 then 语句,它会给我这个错误: 未捕获的 SyntaxError:await 仅在异步函数中有效
如果我随后删除 await 关键字,它会返回 Promise 而不会解决它。
【问题讨论】:
标签: javascript async-await es6-promise