В моем машинописном коде у меня есть массив продуктов
products = [10,25,45,89];
Я звоню в службу поддержки, чтобы найти клиента, который совершил покупку продукта.
products.forEach(x =>
this.clientService.getclientOrdersByProduct(clientId, x)
.subscibe(s=>{
if (s){
this.clientOrders.push(s);
} else{
// add the product id
}
})
);
проблема в том, что я хочу добавить еще и отправить идентификатор продукта в clientOrders. ClientOrders класс выглядит так
export interface ClientAccount{ product?: Product; ....}
как я могу добиться этого в другом?
Спасибо
Пожалуйста, включите больше информации в свой вопрос, непонятно, о чем вы спрашиваете.
Я добавил комментарий о том, где должен быть другой.
ты про (s){ foo; } else { push into clientOrders }?
правильно @JacopoSciampi
объявить массив -> clientOrder: ClientAccount[] = [];, а затем в else -> this.clientOrder.push({product: something, productId: x);
Не могли бы вы опубликовать образец вывода?
@NikhilAggarwal: какой образец?
@JackM - С заданным вводом, как будет выглядеть вывод, скажем, только 2 продукта имеют заказы, а остальные нет
@JacopoSciampi, спасибо, что он работает, если вы добавите его в решение, я отмечу как ответ



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Предполагая, что интерфейс выглядит примерно так:
export interface ClientAccount{
product?: Product;
productId: number;
...
}
ты можешь сделать это:
создать массив clientOrder:
clientOrder: ClientAccount[] = [];
в for
products.forEach(x =>
this.clientService.getclientOrdersByProduct(clientId, x)
.subscibe(s=>{
if (s){
this.clientOrders.push(s);
} else{
this.clientOrder.push({product: **something**, productId: x);
}
})
);
something выделен жирным шрифтом, потому что я понятия не имею, какие данные вы получаете по этой подписке.
Понятия не имею, о чем вы спрашиваете. Что вы имеете в виду, говоря «добавить еще»?