【发布时间】:2019-02-13 13:42:45
【问题描述】:
我有一个具有 setTimeout 的函数“showElement”。如何使对“btnSend”的 eventListener 中的函数的调用在另一个之后立即执行?
我尝试使用 .then() 但没有成功。
document.getElementById('btnSend').addEventListener('click', e => {
e.preventDefault();
result = validateInputs(email, subject, message);
if(result) {
showElement(document.getElementById('formGroupSpinner'), 2000);
showElement(document.getElementById('formGroupSuccessImg'), 2000);
resetForm();
}
});
//expects an html element and a number representing miliseconds. Shows the html element for that amount of time.
function showElement(element, mSeconds) {
element.classList.remove('d-none');
element.classList.add('d-block');
setTimeout( () => {
element.classList.remove('d-block');
element.classList.add('d-none');
}, mSeconds);
}
两个函数同时执行。
【问题讨论】:
-
您好 Floro,您似乎是 JS 新手,寻找 JavaScript 回调。
-
请也添加您的 HTML :)
-
@jo_va 不相关
-
要使用
then,您需要create and return a promise
标签: javascript asynchronous settimeout