【发布时间】:2016-05-06 12:35:13
【问题描述】:
我正在努力将我的头脑围绕着将承诺链接在一起以实现预期的结果。
背景简介: 我正在使用 Ionic2(基于 Angular2)来创建移动应用程序。数据持久化基于 SQLite。为了重新构建一个包含嵌套数组的复杂对象,我需要将多个数据库调用链接在一起。
buildObjectFromID(id) {
return new Promise(function (resolve, reject) {
let db = new DBHelper();
try {
// Get the event object from id
db.getEventWithCMSID(id).then(event => {
db.getBannerForOwner(event.cmsId).then(banner => {
event.banner = banner;
});
db.getImagesForOwner(event.cmsId).then(images => {
event.images = images;
});
db.getProfilePicturesForOwner(event.cmsId).then(profilepictures => {
event.profilepicture = profilepictures;
});
db.getLogosForOwner(event.cmsId).then(logos => {
event.logos = logos;
});
resolve(event);
});
}
catch
(err) {
reject({err: err});
}
}
);
}
此方法旨在从数据库中获取主要对象,并使用它的 ID 从其他表中获取并附加其相关属性。我希望在将结果传回之前完整地重建对象。
但是,此时,对象会被传回,然后随着时间的推移,一旦完成每个附加调用,就会添加属性。
如果有人能告诉我如何将这些链接在一起,我将非常感激,以便调用“buildObjectFromID”的控制器获得一个完整的对象。
非常感谢。
【问题讨论】:
标签: javascript ionic-framework angular promise ionic2