我有兩個函式,一個使用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
}
//測驗相似性。
async function test(){
let name = "Joe"
let test = await repeatsChecker()。
console.log(test[0] )
}
test()
當我編譯一個簡單的if陳述句時,一切都回傳true,而當我進行console.log(test[0])時,卻回傳undefined? 時,它卻回傳未定義?
uj5u.com熱心網友回復:
repeatChecker并沒有回傳一個承諾,所以你await的事實并沒有任何意義的影響。console.log(test[0])在api_data_values.push(data[i].name)之前執行。
試一下:
function repeatsChecker(){
return fetchData().then(>data => {
return data.map(value => value.name) 。
});
}
或者使用async/await:
async function repeatsChecker(){
const data = await fetchData() 。
return data.map(value => value.name) 。
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/318071.html
標籤:
