javascript - 更改 JavaScript 中的执行顺序

标签 javascript settimeout

我有下面的代码

function run(){
    one();
    two();
    three();
}

function one(){
    console.log(1);
}

function two(){
    setTimeout(function(){
        console.log(2);
    });
}

function three(){
    console.log(3);
}

run(); 

以下代码的输出将是1,3,2

我们必须在代码中做哪些更改才能使输出为 1,2,3

最佳答案

这应该有效:

async function run() {
    await one();
    await two()
    await three()
}


function one() {
    Promise.resolve(
        console.log(1)
    )
}

function two() {
    return new Promise(resolve => {
        setTimeout(() => {
            console.log(2);
            resolve();
        });
    });


}

function three() {
    Promise.resolve(
        console.log(3)
    )
}

run(); 

关于javascript - 更改 JavaScript 中的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62732788/

相关文章:

javascript - Javascript 可以检查文件的内容更改吗?

javascript - 可拖动到可排序为网格

JavaScript setTimeOut 函数不起作用

javascript - 如何在不使用 setTimeout 的情况下恰好在 1 秒后停止关键帧动画? - 队列中的问题事件

javascript - setTimeout 后返回变量

javascript - 是否可以访问 javascript 类层次结构中的所有级别?

javascript - 如何使用javascript获取<select>标签和radio标签的值

javascript - 在 Firefox 中的选择字段上禁用或忽略 mousedown

Javascript settimeout 在网络 worker 中不起作用

javascript - 如何在遍历对象时为 setTimeout 参数设置固定时间偏移