在运行时使用JavaScript / TypeScript

时间:2018-07-02 15:51:12

标签: javascript typescript

我正在TypeScript中创建VSCODE扩展。在此扩展中,我有一个realy fat函数,该函数经常被调用,但是最后一次调用却在进行中。因此,我尝试取消以前的通话。

我的想法:

var test;

async funciont foo(change){
  test = new Class(change);
  test.run()
}

这个想法真的很简单,函数foo是异步的,“ foo”不等到“ run”完成,可以在“ run”运行时再次调用。如果再次调用foo,则应创建一个新的“测试”以终止旧运行并开始新运行。但这似乎不起作用。我的想法有问题吗?

vscode中实现的背景。 我使用服务器语言示例作为启动项目,“ foo”由

调用
documents.onDidChangeContent((change)=>{
    foo(change)
})

1 个答案:

答案 0 :(得分:0)

var test;

async funciont foo(change){
  test.stop()
  test = new Class(change);
  test.run()
}

运行需要这样的东西:

await new Promise((resolve)=>{
                setTimeout(resolve, 0)
            })

“停止”正在改变布尔值,从而结束“运行”功能。超时给线程更多时间调用“ foo”函数