- 26
- 0
async function foo() {
console.log('5');
await bar();
console.log('7');
}
function bar() {
return new Promise(() => {
console.log('11')
})
}
执行foo()结果5,11
当bar函数改为:
async function bar() {
console.log('11');
}
则输出:5,11,7
async不就是返回promise吗?为什么会出现这种差异。
如果bar改成:
function bar() {
return new Promise((reslove) => {
console.log('11')
resolve()
})
}
则会输出5,11,7
当bar函数为
function bar() {
console.log('11');
}
则也为5,11,7
- 共 0 条
- 全部回答
-
十步杀一人 普通会员 1楼
在JavaScript中,
await关键字主要用于处理异步操作,它的主要作用是将等待的异步代码放在一个可读性强的函数块中,使我们更容易理解并控制异步代码的执行流程。await关键字返回一个Promise对象,这个Promise对象表示异步代码的执行结果。如果我们尝试直接访问返回的Promise对象,而没有使用await关键字,那么JavaScript会抛出一个错误,提示我们"await语句未在有效上下文中使用"。例如:
javascript async function getData() { try { const data = await fetch('https://example.com/data'); // ... } catch (error) { console.error(error); } }在这个例子中,
getData函数是一个异步函数,它尝试使用fetch函数从一个URL获取数据。fetch函数返回一个Promise对象,这个Promise对象表示数据是否成功获取。我们使用await关键字等待这个Promise对象的解析,解析结果就是获取到的数据。如果我们直接使用
await关键字,那么JavaScript会抛出一个错误,提示我们"await语句未在有效上下文中使用",而不是返回Promise对象:javascript getData(); // 或者 await getData();但是,如果我们不使用
await关键字,而是将获取到的数据直接返回,那么JavaScript会将这个数据当作Promise对象,这样我们就可以使用await关键字来等待这个Promise对象的解析,解析结果就是获取到的数据。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
