2015-10-11 18 views
3

我正在使用舊的解析SDK版本1.5.0和我的函數返回所有包括。 現在我試圖使用最新的SDK,並且函數僅返回主對象(在門和位置我只能得到「指針」)。解析雲代碼新的SDK包括子類不工作

下面是代碼:

Parse.Cloud.define("get_gates_for_user", function(request, response) { 
    var userId = request.params.userId; 


var gateToUserQuery = new Parse.Query("GateUserJoinTable"); 
gateToUserQuery.equalTo("user", { 
      __type: "Pointer", 
      className: "_User", 
      objectId: userId 
     }); 


gateToUserQuery.include("gate"); 
gateToUserQuery.include("location"); 

gateToUserQuery.find({ 
    success: function(results) { 
     response.success(results); 
    }, 
    error: function(error) { 
     console.log(error.message); 
     response.error(ERROR_CODE_GENERAL_ERROR); 
    } 
}); 
}); 
+0

也許有關? http://stackoverflow.com/questions/33059768/parse-com-javascript-sdk-using-include-but-not-working – melpomene

+0

是的似乎是相同的問題!此外,我嘗試使用JavaScript(在瀏覽器頁面上)的代碼,我可以得到所有的子類信息。 –

+0

是的,和我的帖子一樣。我不明白爲什麼。有辦法做到這一點,但它出現的字典,不像'List ' –

回答

0

我最近開始使用Parse工作,所以我不是很熟悉的老SDK版本的behavioiur。

既然你在雲代碼的時候,然而,.include()不保證在.fetch()一個顯著的性能增益,因爲代碼在他們的基礎設施上運行(這是訪問相關Parse.Object S的記錄方式,所以他們應該優化這無論如何),所以下面應該工作:

var _ = require('underscore'); 
var results; 
gateToUserQuery.find().then(function (joins) { 
    // add results to bigger-scoped variable 
    // for access in the other function 
    results = joins; 

    // Promises are beautiful 
    var fetchPromises = _.map(results, function (join) { 
    return Parse.Promise.when([ 
     join.get('gate').fetch(), 
     join.get('location').fetch() 
    ])); 
    }); 
    return Parse.Promise.when(fetchPromises); 
}).then(function() { 
    // related Pointers should be filled with data 
    response.success(results); 
}); 

我覺得至少在SDK的當前迭代,include only works with Arrays代替指針。