我不明白为什么第一个setTimeout函数有效,但第二个没有。当我运行第二个setTimeout时,第一个被注释掉。但不是在3秒后解决,而是立即解决。
我是整个'承诺'的新手,而我正在使用的教程使用了很多的setTimeout承诺。
let promise = new Promise( ( resolve, reject ) => {
/* why does setTimeout work with this one... */
setTimeout( () => resolve( 'Job\'s done!!!' ), 3000 );
/* but not with this one */
setTimeout( resolve('done'), 3000 );
} );
promise.then(
result => alert( result )
);
答案 0 :(得分:3)
/* why does setTimeout work with this one... */
setTimeout( () => resolve( 'Job\'s done!!!' ), 3000 );
超时发生时,执行时调用函数() => ...
,直到解除承诺
/* but not with this one */
setTimeout( resolve('done'), 3000 );
这里你实际上解决了promise(执行结果函数)并将结果传递给setTimeout函数。
书写
() => resolve( 'Job\'s done!!!' )
与
相同function() {
resolve( 'Job\'s done!!!' );
}