首页 > 解决方案 > 只有在堆栈清除并且时钟滴答声过去后,才会对已“确定”的承诺执行操作

问题描述

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

一个动作可以分配给一个已经“确定”的承诺。在这种情况下,操作(如果合适)将在第一个异步机会时执行。请注意,承诺保证是异步的。因此,只有在堆栈清除并且时钟滴答声过去之后,才会对已经“确定”的承诺执行操作。效果很像 setTimeout(action,10)。

const promiseA = new Promise( (resolutionFunc,rejectionFunc) => {
    resolutionFunc(777);
});
// At this point, "promiseA" is already settled.
promiseA.then( (val) => console.log("asynchronous logging has val:",val) );
console.log("immediate logging");

// produces output in this order:
// immediate logging
// asynchronous logging has val: 777

它们是什么意思:只有在堆栈清除并且时钟滴答声过去之后,才会对已经“确定”的承诺执行操作

如果promiseA.then( (val) => console.log("asynchronous logging has val:",val) );语句在 之后显示输出console.log("immediate logging");,这是否意味着该语句已被发送执行,但它以异步方式产生结果?

标签: javascriptnode.jspromise

解决方案


推荐阅读