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

使用pLimit时得到undefined Promise数组,求排查问题

问题分析与解决

你的问题出在map函数的箭头函数写法上:当箭头函数用大括号{}包裹代码块时,必须显式用return返回值,否则默认返回undefined。你当前代码里,limit(() => this.getData(item))的结果没被返回,所以map生成的数组全是undefined。

修正方案

有两种解决方式:

方式1:去掉大括号,利用箭头函数的隐式返回

const maxParallelRequests = 1;
const limit = pLimit(maxParallelRequests);

const promises = items.map(item => 
    limit(() => this.getData(item))
);

方式2:在大括号内显式添加return

const maxParallelRequests = 1;
const limit = pLimit(maxParallelRequests);

const promises = items.map(item => {
    return limit(() => this.getData(item))
});

修改后,map会把每个limit(...)返回的Promise收集到数组里,promises就会是包含60个有效Promise的数组了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 10:02:01