javascript - 在 Javascript 中停止异步进程的最佳方法

标签 javascript asynchronous

我需要在 JavaScript 中实现一个函数,以下面的方式运行异步进程:

  1. 如果变量设置为 true,该进程将运行异步检查
  2. 如果为 true,异步进程将停止
  3. 当变量设置为 false 时,异步进程将再次启动。

最好的方法是什么?两个函数(异步和 UI)或通过回调都可以访问的全局变量?

最佳答案

在不使用任何外部库等的情况下,一种简单的方法是使用某种形式的封装来返回一个 stop 方法。

这是一个简单的例子。

function doAsyncStuff() {
  var i = setInterval(function () {
    console.log("tick");
  }, 1000);
  return function stop() {
    console.log("Stop called");
    clearInterval(i);
  }
}


var stop = doAsyncStuff();


document.querySelector("button").onclick = stop;
<button>Stop</button>

您甚至可以扩展它以返回多个函数,例如恢复重新启动等。

关于javascript - 在 Javascript 中停止异步进程的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49348818/

相关文章:

javascript - 使用 Node.js 中的 Crypto 从一个流生成多个哈希值

javascript - 为什么我不能在 node.js 中对这个 URL 进行 url 编码?

javascript - 如何使用相同的随机排序对两个数组进行排序

c# - 试图理解 C# 中的异步/等待

javascript - 居中对齐生成的文本

javascript - 在没有回发的情况下在表/ GridView 中查看/预览上传的文件

api - Elastic Search Scroll API 异步执行

c# - 异步快速路径

javascript - Jasmine 2.0 完成及 afterEach

android - 使用异步 HTTP 请求在 Activity 中触发 onSuccess