我有 2 个函数,一个使用 async 和 await 来获取数据并将其放入数组中。第二个是像检查器一样查看用户是否输入了与数据库中看到的相似的值
function repeatsChecker() {
let api_data_values = []
fetchData().then(data => {
for (let i = 0; i < data.length; i++) {
api_data_values.push(data[i].name)
}
})
return api_data_values
}
// testing for similarities
async function test() {
let name = "Joe"
let test = await repeatsChecker();
console.log(test[0])
}
test()
当我编译一个简单的 if 语句时,一切都返回 true,而当我执行 console.log(test[0]) 时,它返回 undefined?
repeatChecker
没有返回承诺,因此您await
ing 的事实没有任何有意义的影响。console.log(test[0])
之前执行api_data_values.push(data[i].name)
。
尝试这个:
function repeatsChecker() {
return fetchData().then(data => {
return data.map(value => value.name);
});
}
或者使用异步/等待:
async function repeatsChecker() {
const data = await fetchData();
return data.map(value => value.name);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句