gpt4 book ai didi

Javascript:如何确保在使用数据之前 fetch() 已经完成?

转载 作者:行者123 更新时间:2023-11-30 11:32:29 25 4
gpt4 key购买 nike

<分区>

我正在努力使用 fetch(),我正在使用它来检索 JSON。我认为 问题是代码在 fetch() 实际下载并处理它之前完成并尝试对数组进行“操作”。我最初写了一个更简单的版本,导致了同样的问题;此处的大部分代码 is from Google Developers .

如下所示(仅包含 setTimeout 以演示问题)我两次访问同一个数组时得到不同的结果,相隔一秒:

dataResultArray = requestJSONResult(searchString);

console.log(dataResultArray); // logs '[]'
console.log(dataResultArray.length); // logs '0'

setTimeout(function(){
console.log(dataResultArray); // logs the actual JSON array contents
console.log(dataResultArray.length); // logs the real array length
}, 1000);


function requestJSONResult(searchString) {
var tempArray = []

fetch(`/search/?term=${searchString}`)
.then(status)
.then(json)
.then(function(data) {
tempArray.push(...data)
}).catch(function(error) {
console.log('Request failed', error);
});

return tempArray;
}

function status(response) {
if (response.status >= 200 && response.status < 300) {
return Promise.resolve(response)
} else {
return Promise.reject(new Error(response.statusText))
}
}

function json(response) {
return response.json()
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com