仅在函数完成运行后使用 window.close() 关闭浏览器选项卡

closing a browser tab with window.close() only after function finishes runing

我用 Tampermonkey 注入了以下函数(更大代码段的一部分)

document.addEventListener("keydown", function(e) {
  if ((e.keyCode == 83 || e.keyCode == 32) && e.ctrlKey) {
    e.preventDefault();
    [...document.querySelectorAll('button.btn.btn-primary.pull-end')]
      .filter(x => x.innerText.includes('aaa'))[0]
      .click()
    if (window.location.hash.match(/#*/)) {
      window.close()
    }
  }
}, false);

问题是选项卡在 click() 函数完成之前关闭 我知道我可能不得不使用回调,但我无法让它工作 请帮忙

我最终通过添加超时功能来实现它并且它工作正常

document.addEventListener("keydown", function(e) {
  if ((e.keyCode == 83 || e.keyCode == 32) && e.ctrlKey) {
    e.preventDefault();
    [...document.querySelectorAll('button.btn.btn-primary.pull-end')]
      .filter(x => x.innerText.includes('aaa'))[0]
      .click()
    if (window.location.hash.match(/#*/)) {
      setTimeout(() => window.close(), 1000);
    }
  }  
}, false);