我正在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)
})
答案 0 :(得分:0)
var test;
async funciont foo(change){
test.stop()
test = new Class(change);
test.run()
}
运行需要这样的东西:
await new Promise((resolve)=>{
setTimeout(resolve, 0)
})
“停止”正在改变布尔值,从而结束“运行”功能。超时给线程更多时间调用“ foo”函数