<分区>
在下面的代码中,我预计会有两次 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();
(抱歉这里的缩进。我不知道为什么它不尊重制表符。)