1

Например есть такой код:

let translates = getTranslates()

async function getTranslates() {
    return await HTTP.get('api/translates').translates
}
    console.log(translates)

const languages = ['en', 'uk']
store.dispatch(initialize(languages, { defaultLanguage: 'en' }))

store.dispatch(addTranslation(translates))

в консоли выводится только промис, а переменную translates мне надо передать в функцию уже с результатом

  • 2
    можно написать await translates вместо translates, обернув весь код в async функцию – diralik Dec 13 '17 at 08:24
  • getTranslates это и есть такая обертка – Jonny Manowar Dec 13 '17 at 08:34
  • в любом случае он не дожидается результата – Jonny Manowar Dec 13 '17 at 08:38
  • diraria, вы мне предлагаете в качествве ответа ссылку на набор костылей, большая часть из которых или устарела или не может работать в принципе – Jonny Manowar Dec 13 '17 at 09:08
  • извините пожалуйста, мне очень жаль что тот вопрос не подошёл, просто обычно дают ссылку на него – diralik Dec 13 '17 at 09:11
  • Вопрос как раз в том что тот вариант который описан в том вопросе не работает – Jonny Manowar Dec 13 '17 at 09:18
  • @JonnyManowar, комментарии к ответам надо писать под ответами, а не под вопросом. – Qwertiy Dec 13 '17 at 12:22

1 Answers1

2
(async function(){
    async function getTranslates() {
        return (await HTTP.get('api/translates')).translates
    }

    const translates = await getTranslates()
    console.log(translates)

    const languages = ['en', 'uk']
    store.dispatch(initialize(languages, { defaultLanguage: 'en' }))

    store.dispatch(addTranslation(translates))
})()
Qwertiy
  • 123,725
Darth
  • 13,217
  • Darth нерабочий пример, TypeError: Object(...)(...) is not a function. Правильный ответ: async function getTranslates() { let response = await HTTP.get('/api/translates') return response.data.translates }

    async function initTranslates() { try { const translates = await getTranslates() const languages = ['en', 'uk'] console.log(translates) store.dispatch(initialize(languages, {defaultLanguage: 'en'})) store.dispatch(addTranslation(translates)) } catch (error) { console.log(error) } }

    initTranslates()

    – Jonny Manowar Dec 13 '17 at 10:01
  • @JonnyManowar, ну скобки он пропустил. А .data у тебя в вопросе не было. – Qwertiy Dec 13 '17 at 12:21