如何从JS.then函数返回值[使用箭头函数]



不确定如何访问日期价格值,否则在脚本中

fetch("fileName")
.then(response => response.json())
.then(data => {
    var date  = data.JSONdata[data.JSONdata.length - 1].date
    var prices = data.JSONdata[data.JSONdata.length - 1].prices
})

您可以简单地重写代码以使用async/await:

const response = await fetch("fileName");
const data = await response.json();
const date  = data.JSONdata[data.JSONdata.length - 1].date;
const prices = data.JSONdata[data.JSONdata.length - 1].prices;

EDIT:要使用此异步代码,您必须将使用此代码的函数定义为async:

async function yourFunction() {
    // your async code from above
}
// await async function where it's called
const functionResult = await yourFunction();

您必须使调用堆栈中的每个函数异步到不再关心响应的级别。因此,调用";yourFunction(("也必须是异步的。等等。

您可以使用await来获得Promise结果。请参阅MDN文档

在给定的示例中,日期和价格是硬编码的,将通过real-scenario 中的API调用获取

const date = Date.now();
const prices = [1000, 2000];
const resolvedProm = Promise.resolve({date, prices});
let thenProm = resolvedProm.then(({date, prices}) => {
    return {date, prices};
});
let res = await thenProm;
console.log(res); 
// {date: 1641136463085, prices: Array(2)}

最新更新