node.js默认情况下是否异步?

问题描述 投票:0回答:1

我精通node.js,从2年起一直在JS工作。但是我仍然对节点的异步特性感到困惑。看看下面的代码

// Synchronous Code:

function foo() {
    const result1 = bar();
    console.log(result1);

    const result2 = see();
    console.log(result2);
}
function bar() {
    return 'bar';
}
function see() {
    return 'see'
}
foo();
// Result:
// bar
// see
// Asynchronous - I know async keyword returns a promise so i am resolving it
async function foo() {
    const result1 = await bar();
    console.log(result1);

    const result2 = await see();
    console.log(result2);
}
async function bar() {
    return 'bar';
}
async function see() {
    return 'see'
}
foo();
// Result:
// bar
// see

我看到这两种情况的执行情况相似,我是否遗漏了任何东西,或者异步功能是否在事件循环中排队?

javascript node.js asynchronous es6-promise event-loop
1个回答
0
投票

如果调用异步函数以与同步函数相同的顺序解析可用数据,则无法测试这些函数的异步性,则需要使用setTimeout函数。

但是,为回答您的问题,JavaScript本质上是异步的,无论您是否使用异步,这些函数都会馈送到事件循环。

© www.soinside.com 2019 - 2024. All rights reserved.