我不明白为什么第一个 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 )
);
/* why does setTimeout work with this one... */
setTimeout( () => resolve( 'Job\'s done!!!' ), 3000 );
当超时发生时你调用一个函数() => ...
执行时直到解决承诺
/* but not with this one */
setTimeout( resolve('done'), 3000 );
在这里,您实际上解决了 Promise(执行结果函数)并将结果传递给 setTimeout 函数。
Writing
() => resolve( 'Job\'s done!!!' )
是相同的
function() {
resolve( 'Job\'s done!!!' );
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)