javascript - javascript 中的异步/等待执行顺序

标签 javascript

我正在努力解决 JavaScript 中的 async/await 函数。

这是我编写的示例代码。

const function1 = async () => {
    setTimeout(() => {
        console.log('function 1 finished');
        return 'message';
    }, 500);
};

const funtcion2 = async () => {
    const result1 = await function1();
    console.log('result1: ', result1);
};

funtcion2();

结果如下,我不太明白。

result1:  undefined
function 1 finished

请有人帮我纠正代码,以便我得到类似下面的内容。

result1:  'message'
function 1 finished

最佳答案

function1 需要将 setTimeout 函数的结果作为 Promise 返回,以便进行 await 并显示结果。

因此,您需要创建一个 Promise 并像这样返回它:

const function1 = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      console.log('function 1 finished');
      resolve('message');
    }, 500);
  });
};

const funtcion2 = async () => {
  const result1 = await function1();
  console.log('result1: ', result1);
};

funtcion2();

关于javascript - javascript 中的异步/等待执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73930848/

相关文章:

javascript - 为什么我的图像没有 float 在段落旁边?

javascript - 如何在html中建立不同select标签的option标签之间的关系

javascript - 播放音频 HTML5 功能仅适用于 Chrome

javascript - 使用 splice(0) 复制数组

javascript - 如何添加 aria-hidden 属性以跨越焦点变化?

php - Javascript:跨域JSON请求问题

javascript - 如何 'unrender' MathJax方程?

javascript - 为什么 wiredep 不断删除我的 Bower 组件?

javascript - 处理 URL 方案 react-native 和 Swift

javascript - 在 react 中动态附加和删除事件监听器