Что-то вроде
Promise.all([
datamuse.request(`words?ml=${text}`),
datamuse.request(`words?sp=${text}`),
datamuse.request(`words?rel_trg=${text}`),
datamuse.request(`sug?s=${text}`),
datamuse.request(`words?sl=${text}`),
]).then(([
ml,
sp,
rel,
s,
sl
]) => {
const data = {
ml,
sp,
rel,
s,
sl,
};
}).catch((err) => {
// Deal with error
});
Или даже лучше Вы должны добавить что-то для различия слов и слов, я позволю вам разобраться:)
const elems = [
'ml',
'sp',
'rel_trg',
's',
'sl',
];
Promise.all(elems.map(x => datamuse.request(`words?${x}=${text}`))
.then((rets) => {
const data = elems.reduce((tmp, x, xi) => ({
...tmp,
[x]: rets[xi];
}), {});
}).catch((err) => {
// Deal with error
});
Хорошо, вот одно из возможных решений для вашей words
и sug
проблемы
const elems = [{
acronym: 'ml',
req: 'words',
}, {
acronym: 'sp',
req: 'words',
}, {
acronym: 'rel_trg',
req: 'words',
}, {
acronym: 's',
req: 'sug',
}, {
acronym: 'sl',
req: 'words',
}];
Promise.all(elems.map(({
acronym,
req,
}) => datamuse.request(`${req}?${acronym}=${text}`))
.then((rets) => {
const data = elems.reduce((tmp, {
acronym,
}, xi) => ({
...tmp,
[acronym]: rets[xi];
}), {});
}).catch((err) => {
// Deal with error
});