我有一个图像路径数组,需要将其转换为blob数组:
我使用一个函数:
const pathToBlob = async (url: string) => {
return await fetch(url).then(r => r.blob())
.then(blobFile => new File([blobFile],
"fileNameGoesHere", {type: "image/png"})
)
}
然后我试着用它:
let blobs:any = []
if (vehicle.images) {
for (let i of vehicle.images) {
//@ts-ignore (cant type i into loop)
const file = pathToBlob(process.env.REACT_APP_API_URL+i.img)
blobs=[blobs,...file] // error
console.log(file) // [[Prototype]]: Promise [[PromiseState]]: "fulfilled [[PromiseResult]]: File
}
console.log(blobs)
}
但我收到的承诺是:
[[Prototype]]: Promise
[[PromiseState]]: "fulfilled"
[[PromiseResult]]: File
否则Into函数(如果我重构为const file = await....
console.log(file)
)我得到了一个就绪的blob。
1条答案
按热度按时间ippsafx71#
试试这个,我添加了一个async
iife
来获得一个async上下文,因为我没有从你运行这个的地方。这是能够使用await
所需要的。