在下面的代码中,我预计会有两个4秒的延迟.但是如果你运行代码,你会看到它立即执行.显然我不明白一些非常基本的东西,或者我是一个我看不到的愚蠢错误.
function calculatesomething(resolve) {
console.log("calculating");
setTimeout(results(resolve,3),4000);
}
var answer=0;
function results(resolve,n) {
console.log("got results");
answer=1;
resolve(answer+n);
}
function doingstuff() {
console.log("starting");
var promise1 = new Promise(function(resolve) {
setTimeout(calculatesomething(resolve),4000);
});
promise1.then(function(value) {
console.log("done: "+value);
});
console.log("regular execution");
}
doingstuff();Run Code Online (Sandbox Code Playgroud)
(抱歉这里有缩进.我不知道为什么它不尊重标签.)