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

Javascript navigator.notification.confirm()-多次触发,javascript,json,cordova,Javascript,Json,Cordova,您好,我在JSON中有一个循环,可以在触发错误之前重试连接3次,但有时我有3-4个JSON请求,所有请求都可以通过一个错误,因此我的phonegap应用程序中有3个警报 例如 函数showJSONerror(xhr,状态){ if(xhr.status==0&&localStorage[“TmpAlertShow”]!==true){ navigator.notification.confirm('连接错误。\n请验证您的网络连接并重试')、confirmation、'Woops…'、'try

您好,我在JSON中有一个循环,可以在触发错误之前重试连接3次,但有时我有3-4个JSON请求,所有请求都可以通过一个错误,因此我的phonegap应用程序中有3个警报

例如

函数showJSONerror(xhr,状态){ if(xhr.status==0&&localStorage[“TmpAlertShow”]!==true){ navigator.notification.confirm('连接错误。\n请验证您的网络连接并重试')、confirmation、'Woops…'、'try reach,Close'); localStorage[“TmpAlertShow”]=true; 功能确认(按钮){ 如果(按钮==1){localStorage[“TmpAlertShow”]=false;showPage(localStorage[“TmpWebView”])} 如果(按钮==2){localStorage[“TmpAlertShow”]=false;返回false;} } } 我正试图找到通过JS关闭上一个警报的方法,或者在警报已触发且未关闭时记录状态(防止显示多个警报)


谢谢

您可以尝试设置一个全局变量,即当前正在运行的请求的计数,然后在错误函数中,如果计数大于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*/
}

我以前也有过类似的问题

我曾经解决过这个问题


也许可以试一试?

如果我理解正确,这就是如何做到的?
code-var-callsRunning=0;函数showJSONerror(xhr,status){if(xhr.status==0&&callsRunning>0){navigator.notification.confirm('Connection error.\n验证您的网络连接并重试。'、confirmation、'Woops…'、'try reach,Close');callsRunning++;函数confirmation(button){if(button==1){callsRunning--;showPage(localStorage[“TmpWebView”])}if(button==2){callsRunning--;返回false;}
看来我可能还没有理解这个问题。很抱歉,是的,但这意味着我必须使用顶部的附加库来解决这个问题:/如果这是您唯一需要的功能,您可以模拟相同的代码吗?
if(callsRunning > 0) {
    callStatuses.push(/*whatever you want to collect*/);
}
else {
    /*compile statuses for display of error*/
}