如何尝试在javascript中执行操作

如何尝试在javascript中执行操作,javascript,Javascript,我有一个自动脚本,点击一个按钮,它会触发一个带确认按钮的引导模式对话框。我的javascript代码如下所示: const bookScript = () => { const confirm = () => { const el = document.querySelector('.confirm'); if (el) { el.click(); return; }

我有一个自动脚本,点击一个按钮,它会触发一个带确认按钮的引导模式对话框。我的javascript代码如下所示:

const bookScript = () => {
    const confirm = () => {
        const el = document.querySelector('.confirm');
        if (el) {
            el.click();
            return;
        }
        setTimeout(() => confirm(), 10);
    };
    let bookBtn = document.evaluate("//button[text()='Foo'][1]", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    if (bookBtn) {
        bookBtn.click();
        confirm();
        return true;
    }
    return false;
};

可能会出现模式对话框不显示的情况,在这种情况下,此脚本应返回false,但我希望它等待模式显示至少3秒钟,我如何编写代码?

与设置超时的方式相同

setTimeout( () => {
  let bookBtn = document.evaluate("//button[text()='Foo'][1]", document, null, 
  XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    if (bookBtn) {
        bookBtn.click();
        confirm();
        return true;
    }
    return false;
}, 3000)
嗯,但是,我有递归setTimeout=>confirm,10;,我怎样才能在3秒钟内摆脱这种递归?