我有以下功能,我的目標是推到物品清單,當組件可以識別他們的父項目。 我的問題是,當我推到列表console.log()顯示我的對象在那裏,但是當我返回列表並在另一個函數中捕獲它時,列表中沒有任何內容。 我認爲物品清單是在上面的代碼完成之前返回的。承諾與angularJS和Typescript
private get_items_for_request() {
return this.Item.forRequest(this.request.id, ['group'])
.then((_items) => {
var items = [];
for (var item of _items) {
return this.ItemComponent.forItem(item.id, ['type'])
.then((_components) => {
for (var component of _components) {
if (component.type.can_identify_item) {
items.push({
group_id: item.group.reference,
identifier_code: this.remove_check_digit_if_necessary(
component.identifier_code),
quantity: 1
});
break;
}
}
}, (reason) => {
this.Toast.error(
this.gettextCatalog.getString('components.load_failed'));
return [];
});
}
return items;
}, (reason) => {
this.Toast.error(
this.gettextCatalog.getString('items.failed_load'));
return [];
});
}
@GiftZwergrapper如果你想接收一個工作代碼,你必須鏈接一個plunkr例子,或者至少整個文件。我不確定你的期望是什麼,我們不是媒介。 如果您使用Angular 1,'$ q'服務就是您的Promise庫。 –
@GiftZwergrapper同樣,請注意,我指出的錯誤仍然存在,您在這裏的投票有點積極。 –
在角度上,你可以使用'$ q.all'來達到同樣的目的 – Icycool