Спасибо за ответы, так вот как я это сделал, используя setTimeout.
function receiveOrder(orderNo, callback) {
console.log("Received order " + orderNo)
callback(orderNo, orderReady);
}
function prepareFood(orderNo, callback) {
console.log("Preparing order " + orderNo)
setTimeout(() => {
console.log(callback(orderNo));
}, Math.floor(Math.random() * 10000))
}
function orderReady(orderNo) {
return ("Order " + orderNo + " is ready");
}
receiveOrder(1, prepareFood);
receiveOrder(2, prepareFood);
receiveOrder(3, prepareFood);
receiveOrder(4, prepareFood);
и после запуска это вывод - очевидно, рандомизированные ответы при каждом запуске, так как использовался Math.random ().
Received order 1
Preparing order 1
Received order 2
Preparing order 2
Received order 3
Preparing order 3
Received order 4
Preparing order 4
Order 3 is ready
Order 4 is ready
Order 1 is ready
Order 2 is ready