首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >javascript async/await不工作

javascript async/await不工作
EN

Stack Overflow用户
提问于 2017-04-12 11:04:09
回答 2查看 50.9K关注 0票数 28

我有一个特定的案例,在继续之前我需要等待异步调用的结果。我正在使用async/await关键字,但没有任何运气。感谢您的帮助。

这是我尝试让它工作的尝试,数字应该按数字顺序排列。

代码语言:javascript
复制
function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

async function demo() {
  document.writeln('2...');
  await sleep(2000);
  document.writeln('3...');
}

document.writeln('1...');
demo();
document.writeln('4.');

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-12 11:40:48

您应该在async function之后使用.then()

代码语言:javascript
复制
function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

async function demo() {
  document.writeln('2...');
  await sleep(2000);
  document.writeln('3...');
}

document.writeln('1...');
demo().then(() => {
    document.writeln('4.');
});

票数 19
EN

Stack Overflow用户

发布于 2017-08-15 12:13:51

异步函数将返回一个Promise,因此您需要等待对demo的调用

代码语言:javascript
复制
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms))

const demo = async() => {
  console.log('2...')
  await sleep(2000)
  console.log('3...')
}

const blah = async() => {
  console.log('1...')
  await demo()
  console.log('4.')
}

blah()

票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43359528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档