Прямо сейчас у меня есть асинхронная функция (см. Фрагмент кода), которая возвращает ответ JSON;Массив, содержащий два объекта.Смотрите скриншот.
Как я могу объединить объекты, чтобы я вернулся:
[{resultCount: 100, results: Array(100)}]
Я пробовал это:
var combinedResults = jsonResponses.map((acc, item) => {
acc.resultCount += item.resultCount;
acc.results += item.results;
return acc;
});
Но получил это обратно:
Yikes !!
Любая помощь будет оценена!
export function getDoorstepsSongs () {
return async dispatch => {
const page1 = 'https://itunes.apple.com/search?country=us&media=music&limit=50&attribute=songTerm&term=door&sort=ratingIndex'
const page2 = 'https://itunes.apple.com/search?country=us&media=music&limit=50&offset=50&attribute=songTerm&term=door&sort=ratingIndex'
const jsonResponses = await Promise.all([
fetchJsonP(page1),
fetchJsonP(page2),
]).then(responses => {
return Promise.all(responses.map(res => res.json()))
}).catch(console.error)
console.time('processing songs')
//
// jsonResponses contains the results of two API requests=
//
// 1. combine the results of these requests
// 2. sort the results with lib/sortSongs.js
//
const sortedSongs = sortSongs(combinedResults)
console.timeEnd('processing songs')
return dispatch({
type: 'GET_DOORSTEPS_SONGS_SUCCESS',
songs: sortedSongs,
})
}
}