我的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");
});
}