Console.log 在异步函数中不起作用

Posted

技术标签:

【中文标题】Console.log 在异步函数中不起作用【英文标题】:Console.log doesn't work in async function 【发布时间】:2017-06-15 22:12:53 【问题描述】:

我正在尝试在异步函数中记录如下语句:

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

虽然没有显示日志语句,但我确信这是因为异步功能。那是对的吗?无论如何要解决这个问题?

【问题讨论】:

我刚刚运行了您的代码,它运行良好。您是否尝试过强制createReport 来验证这一点? 仅供参考,async 函数不是 ES6 (ES2015) 的一部分。他们成为今年发布的 ES2017 的一部分。 @MikeC 看起来是个问题! 【参考方案1】:

您的示例缺少上下文,但恕我直言,那是因为您的 createReport 函数永远不会实现。 没有其他原因无法执行 console.log。

【讨论】:

【参考方案2】:

请注意,错误会在异步函数中“默默地”被吞没—— 就像在普通的 Promises 中一样。除非我们添加 try / catch 块 围绕 await 表达式,未捕获的异常——不管是否 它们是在您的 async 函数的主体中提出的,或者在它的 在等待期间暂停 - 将拒绝异步返回的承诺 功能。

javascript-async-await#error-handling

【讨论】:

以上是关于Console.log 在异步函数中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

console.log.apply 在 IE9 中不起作用

console.log 在角度控制器中不起作用

替换方法在浏览器中不起作用但在 console.log 中起作用

为什么console.log在javascript文件的Atom中不起作用?

javascript array.includes在反应中不起作用

.scroll 函数中的 .offset 函数在 jQuery 中不起作用