我正在修复代码,但是由于javascript的异步特性而面临问题。
在给定的功能

function submitQuery() {
    disableButton();
    infoDisplay('DBQuery');
    enableButton()
}
disableButton()用于更改要禁用的图像,以使用户知道功能已启动
infoDisplay()是另一个在服务器上带有某些功能的函数。
而启用按钮则用于恢复正常图标。
function disableButton() {
    idBRQuerySubmitBtn.src='images/Button/Disabled/Retransmit_Message_Search.gif';
    idQuerySubmitBtn.src='images/Button/Disabled/Database_Access_Search.gif';
    idQueryResetBtn.src='images/Button/Disabled/Reset.gif';
}

function enableButton() {
   alert('to check when it is fired');
   idBRQuerySubmitBtn.src='images/Button/Normal/Retransmit_Message_Search.gif';
   idQuerySubmitBtn.src='images/Button/Normal/Database_Access_Search.gif';
   idQueryResetBtn.src='images/Button/Normal/Reset.gif';
}

在此,在完成infoDisplay()之前会触发enableButton()。如何确保在启动enableButton之前执行 infoDisplay()

最佳答案

我建议您在enableButton中传递infoDisplay作为回调函数。因此,将infoDisplay函数修改为

function infoDisplay(parameter, callback) {
    //Do something
    if (callback && typeof(callback) === "function") {
        callback();
    }
}

调用功能如
infoDisplay('DBQuery', enableButton);

10-06 07:33