Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于停止信号的停止函数执行_Javascript_Asynchronous_Electron - Fatal编程技术网

Javascript 基于停止信号的停止函数执行

Javascript 基于停止信号的停止函数执行,javascript,asynchronous,electron,Javascript,Asynchronous,Electron,我想知道当我收到信号时,是否有一种方法可以在函数执行时立即停止(退出)函数 目前,该信号通过ipcMain发送,其中ipcMain正在侦听所述停止信号,尽管我不确定在收到信号时如何或是否可能停止函数的执行 例如: starttthis()被调用,IPC渲染器开始侦听,调用run() startThis() { ipcRenderer.on(`stopTask-${taskId}`, (event, msg) => { console.log("STOP SI

我想知道当我收到信号时,是否有一种方法可以在函数执行时立即停止(退出)函数

目前,该信号通过
ipcMain
发送,其中
ipcMain
正在侦听所述停止信号,尽管我不确定在收到信号时如何或是否可能停止函数的执行

例如:
starttthis()
被调用,IPC渲染器开始侦听,调用
run()

startThis() {
    ipcRenderer.on(`stopTask-${taskId}`, (event, msg) => {
            console.log("STOP SIGNAL")
            helpers.sendTaskUpdate(taskId, msg);
            return; // Supposed to halt execution of "run()"
        })
    run() // more functions is called in here too.
}
是否需要将侦听器放在
run()
中?非常感谢您的帮助,谢谢


run()
是一系列顺序(异步)请求

您可以让
run
函数检查在接收到
STOP
时设置的标志。如果看不到
run
是什么样子,很难说清楚
run
是一系列连续的异步请求,例如,当一个请求完成时,一个承诺得到满足,然后调用另一个函数,依此类推。检查每个请求开头的标志,如果标志是由停止信号设置的,则不要继续执行,这可能是一种选择——我想知道是否有一种不那么乏味的方式,我认为这一点也不乏味,这是我能想到的最直接的方式,需要的行数很少(但如果不看更多的代码,很难给出准确的答案)您可以让
run
函数检查在接收到
STOP
时设置的标志。如果看不到
run
是什么样子,很难说清楚
run
是一系列连续的异步请求,例如,当一个请求完成时,一个承诺得到满足,然后调用另一个函数,依此类推。检查每个请求开头的标志,如果标志是由停止信号设置的,则不要继续执行,这可能是一种选择——我想知道是否有一种不那么乏味的方式,我认为这一点也不乏味,这是我能想到的最直接的方式,需要的行数很少(但如果不看更多的代码,很难给出准确的答案)