JS:如果某个其他事件被触发,如何取消timeOut甚至是Firing

时间:2015-07-16 11:18:57

标签: javascript node.js

我的UI中有一个Promise链,它将数据发送到我的服务器。

在成功/失败时,服务器更新生成和事件的数据模型。此事件告诉我的UI,该过程是成功的。

但是,如果我的服务器端出现问题,我需要在UI处超时以说配置失败。

问题是即使已经有事件,使用setTimeout的超时仍然会触发。 setTimeout在promise链中,而事件监听器在promise链之外。

如何确保在收到事件时未触发超时?或任何替代/更好的方法来解决这个问题。我对JS和Web编程非常陌生。所以,原谅我的无知。

function initialize() {
    event.onValue(function(eventData) {
        //display success fail.
        //unblock UI for new config.
        //cancel the timeout from firing in sendConfigData?
    })

    $(#sendConfigData).asEventStream("click").onValue(function() {
        sendConfigData();
    }
}

function sendConfigData() {
    Promise.try(function() {
        disableNewConfigFromUser();
        return verifyUserData();
    })
    .then (function (userData) {
        return sendUserDataToServer();
    }
    .then (function () {
        setTimeout(function(){
            //conifg Faile. Enable new conifg data from user.
        }, timeOut);
    })
    .catch(function(){
        log("Request Rejected by Server");
    });
}

0 个答案:

没有答案