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

如何让调用函数获取Parse Promise中处理后的数据?

解决方法:让Promise链式传递处理后的数据

我来帮你理顺这个问题~你现在的核心问题是:getAgeGroupList里处理完数据后,没法把处理结果传递到调用方的.then里。原因是你直接用了query.find的success回调,但这个回调的结果并没有成为Promise最终resolve的值。咱们改改写法就行:

第一步:修改getAgeGroupList函数

把原来的success回调换成Promise的.then方法,在里面处理数据后返回处理结果,这样后续的Promise链就能拿到这个值:

function getAgeGroupList(){
  var query = new Parse.Query("Fixtures_and_results");
  // 去掉success回调,改用.then处理结果
  return query.find()
    .then(function(results) {
      // 这里写你的数据处理逻辑,比如筛选、转换格式等
      const processedData = results.map(item => {
        // 举个例子:提取需要的字段
        return {
          id: item.id,
          ageGroup: item.get('ageGroup'),
          // 其他你需要的字段...
        };
      });
      // 返回处理后的数据,这会成为下一个.then的参数
      return processedData;
    });
}

第二步:调用函数并获取处理后的数据

现在调用getAgeGroupList()时,.then里的result就是你处理好的数据了,另外别忘了加.catch处理可能的错误:

getAgeGroupList().then(function (result) {
  // 这里就能直接访问处理后的数据啦!
  console.log('处理后的年龄组数据:', result);
  // 在这里做你想做的事,比如渲染页面、存储数据等
}).catch(function(error) {
  // 处理查询或数据处理中出现的错误
  console.error('获取数据失败:', error);
});

为什么原来的写法不行?

原来的query.find({ success: ... })虽然也能处理结果,但这个success回调是Parse的旧写法,它的返回值不会被传递到Promise链中。而用.then的话,你在.then里返回的值会自动成为下一个Promise的resolve值,这样调用方就能通过自己的.then拿到处理后的结果啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:08:15