首页 > 解决方案 > Java Script 函数的顺序执行

问题描述

我无法理解掌握在 JavaScript 中顺序运行函数的过程。我在 stackoverflow 上阅读了很多关于这个主题的帖子,但它们并没有启发我。让我们假设我们有两个函数 fastFunction() 和 slowFunction()。当我一个接一个地运行它们时,其他 JavaScript 不会按顺序运行它们。

function fastFunction() {
    console.log('fast function!');
}

function slowFunction() {
    setTimeout(() => {console.log('slowFunction!')}, 1000);
}

slowFunction();
fastFunction();

我尝试使用回调、promise 和 async/await 语法(参见下一个示例),但我无法让 JavaScript 按顺序运行这些函数。老实说,我仍然想知道为什么这样一个基本问题在 JavaScript 中很难解决:D!

function fastFunction() {
    console.log('fast function!');
}

async function slowFunction() {
    let promise = new Promise((resolve, reject) => {
        setTimeout(() => {console.log('slowFunction!')}, 1000)});
    let result = await promise;
}

slowFunction().then(fastFunction())

如果有人能解释我做错了什么,我会很高兴。

编辑:建议通过 fastFunction() 作为回调(不确定这是否是评论所建议的)后,并没有解决问题。

function fastFunction() {
    console.log('fast function!');
}

function slowFunction(callback) {
    setTimeout(() => {
        console.log('slowFunction!');
        callback();
        }, 10000);
}

slowFunction(fastFunction);

标签: javascriptasync-await

解决方案


推荐阅读