我尝试使用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();
问题是您调用preparePizza(n)
的方式,这将调用返回undefined
的函数。您需要传递一个函数并在此函数内调用它,因为preparePizza
接受参数n
。解决方案如下。
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(function() {
preparePizza(n)
}, 5000);
}
function pizzaTask() {
for (let x = 1; x <= 10; x++) {
makePizza(x);
}
console.log("Read to take new order ...");
}
pizzaTask();