【发布时间】:2019-11-05 14:38:33
【问题描述】:
我尝试过使用setTimeout,但我添加了pizzaTask 方法,setTimeout 似乎不起作用。是的,我不想要任何异步或承诺。
function preparePizza(n) {
console.log("Finish preparing pizza " + n);
console.log("Start baking pizza " + n);
setTimeout(bakePizza, 10000);
}
function bakePizza() {
console.log("Finish baking pizza");
}
function makePizza(n) {
console.log("Start preparing pizza " + n);
setTimeout(preparePizza(n), 5000);
}
function pizzaTask() {
for (let x = 1; x <= 10; x++) {
makePizza(x);
}
console.log("Read to take new order ...");
}
pizzaTask();
【问题讨论】:
-
setTimeout接受一个函数 - 您将函数的返回值传递给它,即undefined,因为您在括号内调用函数。 -
您可以将
preparePizza调用包装在箭头函数中,这样您仍然可以将n传递给preparePizza而无需立即执行它。setTimeout(() => { preparePizza(n) }, 5000); -
stackoverflow.com/questions/20890943/… 正确的欺骗,以及非描述性的“它不工作!”
标签: javascript