都没问题。
关键在于,then
是在 resolve
之前被调用的,还是 resolve
之后呢?
then
在 resolve
之前,then
不会加微任务,而是缓存起来,resolve
看到缓存里又 then
的回调,于是加微任务。
resolve
在 then
之前,resolve
的时候还没有任何回调要执行,自然不会加微任务。then
的时候发现已经 fullfilled ,于是直接加微任务。
也就是说,他们都有可能加,也都有可能不加,就看调用时的 promise 的状态了。
你的引用有些只说明了其一,但是说明里条件写得还是很清楚的,比如 4 里 "because the promise is already fulfilled"
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…