getTarget(filepath){
const filepaths = [target1, target2, target3, target4]
for (var i =0; i< filepaths.length; i++){
var filepath = filepaths[i]
fetch(filepath)
.then((response) => response.blob())
.then(data => {
var reader = new FileReader();
reader.readAsDataURL(data);
reader.onloadend = (event)=> {
var base64data = reader.result;
this.setState(prevState => ({
targetlist: prevState.targetlist.concat(base64data)
}))
}
});
}
目标1-4是我必须转换为base64并以有序数组形式存储在Web应用程序中的图像。我可以将4张图像存储为targetlist状态。但是,订单将全部混乱。如何确保响应返回的不同时间不会混淆列表?
或者是否有更好的方法可以获取base64字符串。图像存储在本地存储器中。
您可以这样使用async/await
async function getTarget(filepath) {
const filepaths = [target1, target2, target3, target4]
for (let i =0; i< filepaths.length; i+=1){
const filepath = filepaths[i]
const data = await (await fetch(filepath)).blob();
const reader = new FileReader();
reader.readAsDataURL(data);
reader.onloadend = (event) => {
const base64data = reader.result;
this.setState(prevState => ({
targetlist: prevState.targetlist.concat(base64data)
}))
}
}
}