2017-01-30 73 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

仅供参考,“异步”功能不是ES6的一部分(ES2015)。他们*将会是今年发行的一部分,ES2017。 –

+0

@MikeC看起来会是这个问题! –

回答

3

你的例子缺乏上下文,但恕我直言,这是因为你的createReport函数从未满足。 没有其他原因为什么console.log不会被执行。

1

注意错误吞噬“悄无声息”异步函数中 - 就像正常的承诺内。除非我们围绕等待表达式添加try/catch块 ,未捕获的异常 - 不管它们是在异步函数主体中产生的 还是在等待期间暂停它的 - 都会拒绝由异步函数返回的promise。

javascript-async-await#error-handling