最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

此节点 es6代码的输出是什么,为什么?

运维笔记admin9浏览0评论

此节点/ es6代码的输出是什么,为什么?

此节点/ es6代码的输出是什么,为什么?

我在工作应用程序上遇到了这个编码问题,我想学习和理解,所以这里是编码问题,然后我将提供我的解释,并请SO社区详细阐述/纠正我的解释:

async function someFunction() {
    console.log('someFunction'):
}

console.log('start');
someFunction();
console.log('end');

在我看来,这里的输出现在的顺序可以说是不可预测的,仅因为我们知道以someFunction开头的console.log的实现将是:

  • 开始
  • someFunction
  • 结束

我已经在浏览器中运行了此代码,但我确实看到它始终按此顺序运行。我只是不确定原因。

在线阅读,“忘记” await关键字以执行async someFunction,该功能仍将异步执行。

我的理由是,尽管someFunction是异步的并返回了一个Promise,但someFunction的第一行执行将发生在console.log('end')之前。我不确定为什么许多开发人员认为这些是很好的招聘问题,也许是。我只是发现它们是不是真实世界的技巧性问题。在现实世界中,将处理someFunction返回的承诺,例如:

console.log('start');
await someFunction();
console.log('end');

请提供有关此代码的说明。

回答如下:

这里的顺序是完全确定的,它将始终为start-> someFunction-> end

async function someFunction() {
    console.log('someFunction');
}

console.log('start');
someFunction();
console.log('end');
发布评论

评论列表(0)

  1. 暂无评论