在下面的代码中,立即执行'then'子句,它不会等待Promise完成:
function doSomething() { ... }
p = new Promise( ... );
p.then(doSomething()}
这很好用:
function doSomething() { ... }
p = new Promise( ... );
p.then(() => {doSomething()}}
请有人可以解释为什么两个版本不相等吗?
下面是一些运行代码进行演示:https://jsfiddle.net/damianhelme/8b6pq9mL/18/
答案 0 :(得分:2)
您正在调用doSomething
,并将其结果传递给.then
。 () => {...}
创建一个新函数,该函数将由Promise链调用。您也可以进行.then(doSomething)
,请注意没有括号。
答案 1 :(得分:0)
在第一个示例中,您正在执行该功能。
尝试一下: p.then(doSomething) 这样,您可以传递一个函数,该函数将在promise解决后执行。
请注意没有括号