gpt4 book ai didi

javascript - 奇怪的异步代码行为

转载 作者:搜寻专家 更新时间:2023-10-31 23:50:32 25 4
gpt4 key购买 nike

<分区>

我有一个我无法理解的 Unresolved JS 行为。我在 node v8.4.0 上运行这段代码。我运行这段代码两次。

第一次使用 f1()第二次使用 f2()

f2() 结果符合预期。先打印“开始”,然后打印“结束”。

f1() 结果不符合预期。先打印“end”,然后打印“start”。

有人可以向我解释下面代码的结果吗?

const fs = require('fs')

function f1() { return new Promise((resolve, reject) => { resolve() }) }

function f2() {
return new Promise((resolve, reject) => {
fs.readFile('/Users/adi/Downloads/profile.jpg', resolve)
})
}

async function main() {

setImmediate(() => { console.log('start') })
await f1()
console.log('end')
}

main()

//f1 output:
end
start

//f2 output:
start
end

据我所知,结果应该是“开始”然后是“结束”。我错过了什么?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com