Javascript 为什么承诺会执行';然后';承诺完成前的条款?
在以下代码中,“then”子句直接执行,它不会等待承诺完成:Javascript 为什么承诺会执行';然后';承诺完成前的条款?,javascript,promise,Javascript,Promise,在以下代码中,“then”子句直接执行,它不会等待承诺完成: function doSomething() { ... } p = new Promise( ... ); p.then(doSomething()} 鉴于此方法效果良好: function doSomething() { ... } p = new Promise( ... ); p.then(() => {doSomething()}} 有人能解释一下为什么这两个版本不相等吗 下面是一些正在运行的代码来演示它:您正
function doSomething() { ... }
p = new Promise( ... );
p.then(doSomething()}
鉴于此方法效果良好:
function doSomething() { ... }
p = new Promise( ... );
p.then(() => {doSomething()}}
有人能解释一下为什么这两个版本不相等吗
下面是一些正在运行的代码来演示它:您正在调用
doSomething
并将其结果传递给。然后()=>{…}
创建一个新函数,该函数将由承诺链调用。您也可以执行。然后(doSomething)
,注意不要使用parens。在第一个示例中,您正在执行函数
试试这个:
p、 然后(doSomething)
通过这种方式,您可以传递一个函数,该函数将在promise解析后执行
请注意,没有括号,则
希望函数引用而不是调用的函数(除非调用的函数返回函数引用)。谢谢。当人们投票否决这个问题时,我很想听听他们的意见。我现在知道这是一个愚蠢的错误,但我猜我不是第一个或最后一个犯这个错误的人!谢谢-男生的错误!“羞愧地垂着头”的表情符号在哪里?谢谢,我给了丹尼尔“正确答案”,因为他先写了。是的,没问题