SOURCE

const function_arr = [
    function (req,resp,next)
    {
        console.log("1");
        // ... 一些其他操作
        next();
    },
    function (req,resp,next)
    {
        console.log("2");
        // ... 一些其他操作
        next();
    },
    function (req,resp,next)
    {
        console.log("3");
        // ... 一些其他操作
    },
    function (req,resp,next)
    {
        // console.log("4");
    },
];
async function test ()
{
    // ... 一些其他操作
    const data = []; // 关键是在第三次执行后,没有调用next函数,所以异步任务一直没有完成,卡在第三个函数结尾,但是循环并没有完成
    // 此时 , 这 data 会不会还占用内存
    for (let i = 0; i < 1000; i++)
    {
        data.push(i);
    }
    for (let i = 0; i < function_arr.length; i++)
    {
        // 异步执行这些函数 , 不调用next就会被卡住
        await execute_function({name : "req" , data},{name : "resp" , data},function_arr[i]);
    }
}
async function execute_function (req,resp,func)
{
    return new Promise((res,rej) =>
    {
        func(req,resp , () =>
        {
            res();
        });
    });
}
setInterval(() =>
{
    test().then((value) =>
    {
        console.log(value);
    });
} , 500)
console 命令行工具 X clear

                    
>
console