Javascript 在函数外部按名称关闭函数

Javascript 在函数外部按名称关闭函数,javascript,asynchronous,Javascript,Asynchronous,我有几个异步函数正在运行,我想知道是否可以关闭在后台运行的函数。以它的名字为例 async function test(){ await ... await ... await ... } /* CODE TO CLOSE the test function, something like : aclose("test"); ??? */ 没有,因为不需要。JavaScript中定义的异步函数不在后台运行;它并行运行,但不是并行运行。当JS代码实际执行时,它就在前台 如果希望其他代码能够

我有几个异步函数正在运行,我想知道是否可以关闭在后台运行的函数。以它的名字为例

async function test(){
 await ...
 await ...
 await ...
}
/* CODE TO CLOSE the test function, something like : aclose("test"); ??? */

没有,因为不需要。JavaScript中定义的异步函数不在后台运行;它并行运行,但不是并行运行。当JS代码实际执行时,它就在前台

如果希望其他代码能够阻止函数完成,则需要编写异步函数以进行协作。例如,您可以设置一个外部代码可以设置的共享闭包变量,然后让异步函数在每个
wait
语句后检查该变量,看它是否应该提前返回。

我假设“close”是指“cancel”函数启动的异步管道。您必须使用类似于模式的方式跟踪异步函数内部的取消。虽然JavaScript没有用于此内置的构造,但您可以使用一个包,如


您可以从任何地方调用令牌的
cancel
函数,并定期检查异步函数内部是否已取消。如果有,你可以直接返回。如果没有,你就继续工作。

你所说的
关闭
是什么意思?你不能取消承诺,如果你想取消的话。就像一个
return
一样,但是在函数本身之外。可能重复