如何让调用函数获取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
相关产品推荐
相关产品推荐

