SetTimeout 并在没有承诺的情况下返回

时间:2021-03-17 19:41:12

标签: javascript settimeout

我有一个简单的任务:我有一些菜单,我需要做饭,每道菜都有自己的计时器。当一切准备就绪时,我必须接收一个数组,菜单中的菜肴已准备好,但我没有定义,因为 return 将在 setTimeout 之前执行,我不知道如何修复它。请帮忙。

<script>
    const menu = {
        burger: [
            {
                name: '?',
                time: 2000
            },
            {
                name: '?',
                time: 3500
            },
            {
                name: '?',
                time: 3200
            },
        ],
        hotDog: [
            {
                name: '?',
                time: 500
            },
            {
                name: '?',
                time: 500
            },
            {
                name: '?',
                time: 500
            }],
        pizza: [
            {
                name: '?',
                time: 800
            },
            {
                name: '?',
                time: 800
            }]
    }

    function order(menuName) {
        console.log('Start cooking...');
        const result = [];


        const foo = (name) => {
            result.push(name);
        }

        function cooking({name, time}) {
            setTimeout(() => {
                foo(name);
            }, time);
        };
        menuName.forEach(cooking);

    }

    console.log(order(menu.burger));

</script>

0 个答案:

没有答案