Javascript 在不同的时间启动功能

Javascript 在不同的时间启动功能,javascript,Javascript,我希望redirectWindow函数中的代码在得到confirmationOrder()函数的响应后启动。我试着这样做,但不起作用。 如果你能帮助我,谢谢你:) 我的确认订单功能: function confirmationOrder() { let buttonValidation = document.getElementById('btn-validation'); console.log(buttonValidation); buttonValidation.a

我希望redirectWindow函数中的代码在得到confirmationOrder()函数的响应后启动。我试着这样做,但不起作用。 如果你能帮助我,谢谢你:)

我的确认订单功能:

function confirmationOrder() {
    let buttonValidation = document.getElementById('btn-validation');
    console.log(buttonValidation);
    buttonValidation.addEventListener('click', function () {
        getForm();
        dataToSend = JSON.stringify({ contact, products });
        console.log(dataToSend);
        postForm(dataToSend);
    })
}

您正在等待一个不返回承诺的函数。我想你想要的是等待用户点击

function confirmationOrder() {
    return new Promise(done=>{
        let buttonValidation = document.getElementById('btn-validation');
        console.log(buttonValidation);
        buttonValidation.addEventListener('click', function () {
             getForm();
             dataToSend = JSON.stringify({ contact, products });
             console.log(dataToSend);
             postForm(dataToSend);
             done();
        })
    });
}

但是,您可能还需要等待
postForm()
,这意味着您需要确保它也返回了一个承诺。阅读如何工作。

代码中没有承诺,因此不清楚如何使用wait。。。。为什么confirmationOrder不只是在单击时调用重定向代码?
wait
并不是一个神奇的包罗万象,它告诉解释器等待,直到目标函数中的每一行代码都被触发。它只能用于一种类型的价值:承诺。您的
confirmationOrder()
函数不会返回任何值,更不用说承诺了。谢谢您的回答!我找到了一种方法,它正在工作(使用wait和async是一种在多次尝试之后的绝望尝试)
function confirmationOrder() {
    return new Promise(done=>{
        let buttonValidation = document.getElementById('btn-validation');
        console.log(buttonValidation);
        buttonValidation.addEventListener('click', function () {
             getForm();
             dataToSend = JSON.stringify({ contact, products });
             console.log(dataToSend);
             postForm(dataToSend);
             done();
        })
    });
}