我的解析数据库中有两个类,一个名为“TrebUser”,另一个名为“UserImage”,描述如下:
TrebUser
------------------------------------------------- ---
| 对象ID | 名字 | 姓氏 | 图片 |
(string) (string) (string) (UserImage ObjectId)
用户图像
------------------------------------
| 对象ID | 图片 | 图片名 |
(字符串) (文件) (字符串)
对于给定的 TrebUser,我想显示一个配置文件,其中包括他们的名字、姓氏并显示图像名称(一旦我设法显示图像名称,我将尝试实际显示图像)。我正在尝试使用一个查询来检索 TrebUser,然后使用第二个嵌套查询或 promise(如下所示)来检索该用户的图像名,然后将该图像名返回到我将打印它的位置屏幕。出于某种原因,它总是以未定义的形式返回,即使当我使用弹出警报时它显示的名称也很好。我认为这与异步执行有关。有什么想法吗?
function getPhoto(i){
var TrebUser = Parse.Object.extend("TrebUser");
var queryTrebUser = new Parse.Query(TrebUser);
var UserImage = Parse.Object.extend("UserImage");
var queryUserImage = new Parse.Query(UserImage);
queryTrebUser.find().then(function(results) {
alert("Successfully retrieved " + results.length + "object");
var object = results[i];
var imageId = object.get('image').id;
queryUserImage.equalTo("objectId", imageId);
return queryUserImage.find();
}).then(function(imageResults) {
var object2 = imageResults[i];
//this alert shows the image 'name' perfectly, however when i return the object2.get('name') it shows
//up as undefined!
alert("Successfully retrieved " + imageResults.length + " object with name " + object2.get('name'));
return object2.get('name');
}, function(error) {
alert("Error: " + error.code + " " + error.message);
});
}