2017-01-30 20 views
2

Я пытаюсь войти заявление в функции асинхронной следующим образом:console.log не работает в функции асинхронной

async generateCharts (insights) { 
    const { url } = await this.reportsClient.createReport(insights) 
    console.log('url from reports', url) 
    return this.parse(url) 
} 

утверждение журнала не показывает, хотя, и я уверен, что это из-за асинхронной функции. Это верно? В любом случае, чтобы обойти это?

+0

Я просто побежал ваш код и он работает отлично. Вы пытались заставить «createReport» выполнить, чтобы проверить это? –

+0

Функции FYI, 'async' не являются частью ES6 (ES2015). Они * будут * частью релиза года, ES2017. –

+0

@MikeC похоже, что это будет проблемой! –

ответ

3

Ваш пример не имеет контекста, но, ИМХО, это потому, что ваша функция createReport никогда не выполняется. Других причин, по которым console.log не будет выполнен, нет.

1

Обратите внимание, что ошибки проглатываются «молча» внутри функции асинхронной - так же, как в обычных Promises. Если мы не добавим блоки try/catch вокруг ожидающих выражений, неперехваченные исключения - независимо от того, были ли они получены в теле вашей асинхронной функции или в то время как ее приостановлено во время ожидания - отклонят обещание, возвращенное функцией async .

javascript-async-await#error-handling