解析データベース内に 2 つのクラスがあり、1 つは「TrebUser」と呼ばれ、もう 1 つは「UserImage」と呼ばれ、次のように説明されています。
TrebUser
-------------------------------------------------- ---
| オブジェクト ID | ファーストネーム | 姓 | 画像 |
(文字列) (文字列) (文字列) (UserImage ObjectId)
ユーザーイメージ
------------------------------------------------
| オブジェクト ID | 画像 | イメージ名 |
(文字列) (ファイル) (文字列)
特定の TrebUser について、名前、姓を含み、画像名を表示するプロファイルを表示したいと考えています (画像名を表示できたら、実際に画像を表示しようとします)。1 つのクエリを使用して TrebUser を取得し、次に 2 番目のネストされたクエリまたは 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);
});
}