我有下面的代码,它并没有像我期望的那样工作.
const bar = () => console.log('bar')
const baz = () => console.log('baz')
const myPromise = new Promise((resolve, reject) =>
resolve('should be right after baz, before bar')
);
const foo = () => {
console.log('foo')
setTimeout(bar, 0)
myPromise.then(resolve => console.log(resolve))
baz()
}
foo()
console.log('before bar')
结果:
foo
baz
before bar
should be right after baz, before bar
bar
根据https://nodejs.dev/ 中所述,promise 解决将在函数之后立即发生.
在当前函数结束之前解析的promise 将在当前函数之后立即执行.
所以我预计"应该在baz之后,在bar之前"会发生在foo()
年之后,console.log('before bar')
年之前.