navigator.notification.confirm() - 多次触发

时间:2014-02-03 23:45:44

标签: javascript json cordova

嗨我在JSON中有一个循环,在发出错误之前重试连接3x但是有时候我有3-4个JSON请求,并且所有这些请求都可以通过错误,所以我在我的phonegap应用程序中有3个警报。

EG。


function showJSONerror(xhr, status)  {

        if (xhr.status === 0 && localStorage["TmpAlertShow"] !== true) {

        navigator.notification.confirm('Connection error.\n Verify your network connection and try again.', confirmAction, 'Woops...','Try Again, Close');
        localStorage["TmpAlertShow"] = true;

        function confirmAction(button) {

          if (button == 1) { localStorage["TmpAlertShow"] = false; showPage(localStorage["TmpWebView"]) }  
          if (button == 2) { localStorage["TmpAlertShow"] = false; return false; } 

        }
}

我正试图找到通过JS关闭先前警报的方法,或者如果警报已经被触发而未关闭(防止显示多个警报),则记录状态

由于

2 个答案:

答案 0 :(得分:0)

您可以尝试设置一个全局变量,即当前正在运行的请求数,然后在您的错误函数中,例如,如果计数大于0,则将结果存储在全局数组中,如果不存在,则处理错误显示。

示例:

var callsRunning = 0;
var callStatuses = [];

运行来电时添加:

callsRunning++;

完成通话后:

callsRunning--;
错误函数中的

if(callsRunning > 0) {
    callStatuses.push(/*whatever you want to collect*/);
}
else {
    /*compile statuses for display of error*/
}

答案 1 :(得分:0)

我之前遇到过类似的问题

我曾经解决它http://underscorejs.org/#after

或许可以试一试?