好的,我对 Parse 已经非常熟悉了,并且在日常开发中使用过大部分功能。但是,现在我需要处理一些多对多关系,但似乎无法使其正常工作。我尝试阅读 Stack 上的几篇文章...但没有成功。
任何帮助将不胜感激:
1) 'Projects' 类 =(主要分组类和项目详细信息) a) 'projectTasks' 设置为关系列并指向 Tasks 类。
2) 'Tasks' class =(用户提交并分组到项目中的任务)
3)我希望能够查询某些项目,并同时获取关系数据。
test: function(){
console.warn("Running relations test....")
var deferred = $q.defer()
var Projects = Parse.Object.extend("Projects");
var query = new Parse.Query(Projects)
query.equalTo("objectId",Parse.User.current().id)
query.include("projectTasks")
query.find({
success: function(res){
console.log(res)
deferred.resolve(res)
},
error: function(e,r){
console.log(e,r)
deferred.reject(e)
}
})
return deferred.promise
},
我得到的响应永远不会从关系字段返回实际数据......只是另一个 promise 或其他任何东西。
也许我的想法是错误的。任何帮助,将不胜感激。我想要存储项目、存储任务,并能够将任务与项目关联并快速检索每个项目的所有信息。
最佳答案
您需要执行第二次查询来获取关系数据,这是第二次异步调用。
test: function(){
console.warn("Running relations test....")
var deferred = $q.defer()
var Projects = Parse.Object.extend("Projects");
var query = new Parse.Query(Projects)
query.equalTo("objectId",Parse.User.current().id)
query.include("projectTasks")
query.find({
success: function(res){ // my code just assumes you get an answer.....
console.log(res)
res[0].get('projectTasks').query().find().then(tasks => {
const response = {parent: res, tasks: tasks};
deferred.resolve(response);
}
},
error: function(e,r){
console.log(e,r)
deferred.reject(e)
}
})
return deferred.promise
},
如果在这个答案的现实生活中,您正在获得一组结果,那么调用它的客户端代码可能想要处理第二个调用以在迭代项目时获取任务...
关于javascript - Parse Platform - 检索对象中的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40639337/