“与”的区别是什么;然后用“block”;及;然后是handler“;在javascript中承诺?
在本文档中的javascript承诺文档中。上面写着: 使用已解决的承诺,“then”块将立即触发, 但它的处理程序将异步触发 我不太明白它说的块将被触发的部分,但是处理程序是异步触发的。我的问题是:“与”的区别是什么;然后用“block”;及;然后是handler“;在javascript中承诺?,javascript,promise,ecma,Javascript,Promise,Ecma,在本文档中的javascript承诺文档中。上面写着: 使用已解决的承诺,“then”块将立即触发, 但它的处理程序将异步触发 我不太明白它说的块将被触发的部分,但是处理程序是异步触发的。我的问题是: 那么街区是什么?它的处理程序是什么?它们有什么区别 是什么触发了它们 当异步触发器发生时,它终究会被解决 多谢各位 那句话有点让人困惑,下面是我试图解释它的意思。如果我在什么地方弄错了,请不要犹豫向我扔石头:) .then()方法返回一个承诺。我认为通过可以立即触发'then'块,这意味着.the
多谢各位 那句话有点让人困惑,下面是我试图解释它的意思。如果我在什么地方弄错了,请不要犹豫向我扔石头:)
.then()
方法返回一个承诺。我认为通过可以立即触发'then'块
,这意味着.then
方法将在事件循环的当前运行中运行,并将立即返回承诺。但是,传递给then
方法的回调将异步执行,即在事件循环的下一次运行中执行
因此,在该示例中,记录的第一行是
PromiseStatus{[[PromiseStatus]]:“待定”,“PromiseValue]]:未定义}
因为:
var thenProm = resolvedProm.then(function(value){
console.log("this gets called after the end of the main stack. the value
received and returned is: " + value);
return value; });
运行并返回承诺,但返回值的回调尚未执行,因此该值未定义
事件循环运行完成后,下一个循环开始并执行回调。此回调将值分配给承诺并记录此行:
“这在主堆栈结束后被调用。收到的值
返回的是:33“
最后,将使用新分配的值记录承诺本身:
承诺{[[PromiseStatus]]:“已解决”,[[PromiseValue]]:33}
要更直接地回答您的问题,请执行以下操作:
Then
是一种基于Promise的方法,它接受一个回调函数并返回另一个Promise。当原始承诺得到解决时,该函数将被激发李>
。然后()
方法本身,它只是一个方法李>
方法调用中的代码块”
然后block是Promise对象的方法,用于注册回调,如果Promise实现或拒绝,将调用回调
当您创建承诺实例时,第一个触发器会及时触发。当承诺将被解决或拒绝时,将调用处理程序
是的,那句话毫无意义。它是在本次编辑中引入的:我在链接中没有发现任何内容,也不知道什么是“then block/handler”,但根据我对Promission的经验,我可以告诉您,then
中使用的代码会在Promission得到解决时立即执行,但会从主堆栈异步执行。在编写代码时,您永远不应该按照异步操作的顺序来进行。“块”没有任何意义,这个术语的含义是其他的。我只能假设这句话的意思是“包含then()
调用的代码块会立即执行”。@Bergi是的,这是一个很好的观点,如果你不介意的话,我会将这一行添加到我的答案中?@redFur当然,继续
var thenProm = resolvedProm.then(function(value){
console.log("this gets called after the end of the main stack. the value
received and returned is: " + value);
return value; });