Parse Query find方法返回的对象不是数组

时间:2015-03-13 11:17:49

标签: javascript parse-platform promise

我正在使用一个使用Parse作为后端的移动应用程序,我遇到了find函数的问题。以以下格式运行find函数时:

var = firstQuery = (new Parse.Query("MyParseObject"))
  .find(),
  secondQuery = (new Parse.Query("OtherParseObject")).get(id)

// there is only one object that firstQuery can find
Parse.Promise.when(firstQuery, secondQuery)
  .then( function (query1res, query2res) {
    // query1res should return only one result wrapped in an array,
    // instead query1res is an object without a get method

   query1res.forEach (function (res) {
     // this fails: cannot get .length of undefined
   })  
   // ... do stuff with the returned data


  })

我有什么遗失的吗?我确信之前曾经工作过,但现在却没有。

由于Parse的工作原理,很难正确地调试这个问题,但是他们的文档概述了这应该返回一个数组,但它不会在这个时间点。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

基于Parse docs,看起来Parse.Promise.when需要一个数组,尽管基于this support thread,结果将作为单个参数传递给then处理程序。试一试:

Parse.Promise.when([firstQuery, secondQuery])
.then(function (query1res, query2res) {

   // use query1res and query2res
});

答案 1 :(得分:0)

原来这是代码中更深层次的函数,需要返回一个链接的承诺。添加之后,代码很开心。在forEach中调用了返回promise所需的函数,它与最初的两个查询无关,这就是抛出我的内容。