尝试使用异步函数从 API 获取值。我需要能够立即访问数组中的值。
componentDidMount() {
var devices = this.props.navigation.state.params.userInfoState.deviceIds
async function call_vstat(device, token) {
try {
let response = await fetch(
'http://app.yatis.io/api/admin/getDeviceStatus?api_access_token=' + token + '&deviceId=' + device,
);
let responseJson = await response.json();
return responseJson;
} catch (error) {
console.error(error);
}
}
var results = []
for (i = 0; i < devices.length; i++) {
var result = call_vstat(devices[i], my_token)
.then( (result) => (results.push(result) ) )
}
console.log(results.length)
console.log(results)
}
最佳答案
如果您使用async wait
,则不必使用then()
。你能做的是
for (i = 0; i < devices.length; i++) {
var result = await call_vstat(devices[i], my_token)
results.push(result)
}
希望这有效
关于Javascript 数组返回了元素,但是当记录长度时我得到零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58637216/