Мне нужно получить этот результат для запроса POST:
{
"names": [
{
"id": "t3xcb9xAyX",
"username": "Gennaro"
},
{
"id": "Csdu65RKon",
"username": "Marco"
},
...
],
"createdAt":"04/07/2018 - 11.49.51"
}
поэтому я выполнил эту работу, используя rxjs: я создал два Observable (один для имен, один для созданного) и в конце слился:
const notObj = utils.getNotificationType(codeProduct, Parse);
const csvObj = utils.getNotificationType(codeProduct, Parse);
const query = new Parse.Query(notObj);
const dateQuery = new Parse.Query(csvObj).descending('createdAt');
const names = from(query.find())
.map(el => el.map((e) => {
return {
id: e.id,
username: e.get('username')
}
}))
.mergeMap((arr) => Observable.of({
names: arr
}));
const lastUpdate = from(dateQuery.first())
.map(res => moment(res.createdAt).format('DD/MM/YYYY - HH:mm:ss'))
.map(res => {
return {
createdAt: res
}
});
merge(names, lastUpdate)
.subscribe(
(data) => res.send(serialize(data)),
(error) => res.send(serialize(error)),
() => console.log('complete')
);
проблема в том, что в итоге слияния извлекают меня только "names"
. Я мог бы получить другой результат, используя оператор .zip()
, но у меня есть массив JSON вместо объекта.
Мой вопрос: почему merge()
не объединяет два результата, а только первый? Спасибо