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