代码如下
viewPost:function(){
var deleteFlag = true;
new Request.JSON({
url: this.getFullUrl,
data:{"id":this.data.objId},
onComplete: function(json) {
if(json.result == 'success'){
if(json.data == null || json.data == 'undefined'){
deleteFlag = false;
}
}
}.bind(this)
}).send();
//alert("deleteFlag="+deleteFlag);
if(deleteFlag == true){
alert("true:deleteFlag="+deleteFlag);
}else{
alert("false:deleteFlag="+deleteFlag);
}
}
遇到的问题:1.当注释alert("deleteFlag="+deleteFlag)后,deleteFlag打印的结果为true;但当不注释后,打印的结果却为false,非常郁闷,望高手指点,等待中......
viewPost:function(){
var deleteFlag = true;
new Request.JSON({
url: this.getFullUrl,
data:{"id":this.data.objId},
onComplete: function(json) {
if(json.result == 'success'){
if(json.data == null || json.data == 'undefined'){
deleteFlag = false;
}
}
}.bind(this)
}).send();
//alert("deleteFlag="+deleteFlag);
if(deleteFlag == true){
alert("true:deleteFlag="+deleteFlag);
}else{
alert("false:deleteFlag="+deleteFlag);
}
}
遇到的问题:1.当注释alert("deleteFlag="+deleteFlag)后,deleteFlag打印的结果为true;但当不注释后,打印的结果却为false,非常郁闷,望高手指点,等待中......
如果不注释alert。弹出窗口实际上为结果返回赢得了时间,当关闭弹出窗口打印deleteFlag,deleteFlag已经是返回的值了
var deleteFlag = true;
new Request.JSON({
url: this.getFullUrl,
data:{"id":this.data.objId},
onComplete: function(json) {
if(json.result == 'success'){
if(json.data == null || json.data == 'undefined'){
//1
deleteFlag = false; //这里当加载成功,并且data无数据的时候执行
}
}
}.bind(this)
}).send();
//alert("deleteFlag="+deleteFlag);
if(deleteFlag == true){ //2
alert("true:deleteFlag="+deleteFlag);
}else{
alert("false:deleteFlag="+deleteFlag);
}
}
不加注释,执行2部分代码时,1部分代码还没有执行
加注释,alert出消息框,点确定后才执行2部分代码,此是1部分代码已经执行
所以结果不一样
小弟再想问一下,那要怎么样才能在json加载完毕后再打印的呢?该如何处理
viewPost:function(){
var deleteFlag = true;
new Request.JSON({
url: this.getFullUrl,
data:{"id":this.data.objId},
onComplete: function(json) {
if(json.result == 'success'){
if(json.data == null || json.data == 'undefined'){
deleteFlag = false; //这里当加载成功,并且data无数据的时候执行
}
}
alert(deleteFlag);//在这里alert
}.bind(this)
}).send(); }