gpt4 book ai didi

javascript - 停止从另一个函数执行 Javascript 函数

转载 作者:数据小太阳 更新时间:2023-10-29 04:10:26 25 4
gpt4 key购买 nike

有什么方法可以停止从另一个函数执行被调用的函数吗?

我有以下代码:-

function MainFunction() { //a long code that runs for few time  };
MainFuntion();

<button onclick="(Here I want some thing to stop MainFunction())">Stop the running script </button>

所以基本思想是从另一个函数返回一个函数

最佳答案

JavaScript 通常是单线程的 - 这意味着当一个函数在浏览器中执行时,没有其他代码可以同时运行 - 包括事件处理程序,例如 onclick(它们只会在功能齐全)。因此,在这种情况下,您不能从代码中中断函数的执行。

有两种解决方法:

  1. 长时间运行的函数可以有意中断,允许其他代码执行。

    //set this to true from an event handler to stop the execution
    var cancelled = false;

    function longRunningFunction() {
    if (cancelled) {
    return;
    }

    // do some work, but not all
    // save your progress to be able to resume when called again

    if (!done) {
    // release control, so that handlers can be called, and continue in 10ms
    setTimeout(longRunningFunction, 10);
    }
    }
  2. 使用 web workers .它们允许并行运行代码,但有一些限制并且并非所有浏览器都支持。

关于javascript - 停止从另一个函数执行 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29149567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com