为什么我的函数返回总是_u 0 _v 0 _w null _x null?



如何从React Native中的异步函数返回值?我正在尝试压缩用户提供的图像。

这是我的压缩函数,压缩每个图像

const compressFunction = async (item, format = SaveFormat.JPEG) => {
const result = await manipulateAsync(
item.uri,
[],
{ compress: 0, format }
)
return result
};

这是我尝试调用的函数。console.log返回Promise {_u 0, _v 0, _w null, _x null}。compressFunction正在工作,我可以console.log并查看每次返回"compressFunction(item)"的结果。但是我不能在数组列表中看到它们

const compressImages = (items) => {
const list = items.map( async (item) => ( await compressFunction(item)) )
console.log(list)
}

但是当我尝试这样调用时,它是工作的。

const compressImages = async (items) => {
const list= await compressFunction(items[0])
console.log(list)
}
我不知道我做错了什么,我已经做了好几个小时了。如果有人能帮助我,我将不胜感激。

tryawait Promise.all(items.map(compressFunction))

调用list.map(async function)将把list中的每个元素转换为Promise。

编辑:如果你把这写得更冗长你可以看到这里发生了什么

const promises = items.map(item => {
return new Promise((res) => {
compressFunction(item).then(result => {
return res(result);
});
});
});
// Now with the list of promises we have to use the Promise api
// to wait for them all to finish.
Promise.all(promises).then(results => {
// do stuff with results
});

Async/await只是这个语法的简写

相关内容

  • 没有找到相关文章

最新更新