You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native异步函数返回Promise {_u 0, _v 0, _w null, _x null}如何解决

问题根因
  • Array.map传入异步函数后,返回值是Promise对象组成的数组,而非压缩处理后的结果集合,你直接打印该数组自然会看到Promise实例的内部结构。
  • 单张调用正常是因为你对单个Promise执行了await操作等待其完成,批量场景下需要等待所有Promise全部执行完成才能拿到完整结果。
修复后的批量压缩代码

使用Promise.all等待所有压缩任务执行完成即可拿到最终结果:

const compressImages = async (items) => {
   const list = await Promise.all(
     items.map(item => compressFunction(item))
   )
   console.log(list)
   // 后续可直接使用list中的压缩结果
}
可选优化:兼容单张压缩失败场景

如果需要避免某一张图片压缩失败导致整个批量任务崩溃,可以给单个压缩任务增加错误捕获逻辑:

const compressImages = async (items) => {
  const list = await Promise.all(
    items.map(async item => {
      try {
        return await compressFunction(item)
      } catch (err) {
        console.error('单张图片压缩失败:', err)
        // 可按需返回错误标识,后续自行过滤无效结果
        return null
      }
    })
  )
  // 过滤压缩失败的项
  const validResultList = list.filter(Boolean)
  console.log(validResultList)
}

内容的提问来源于stack exchange,提问作者hegonen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:24:03