如果让回调函数执行完了后再执行后面的代码?

wk714598352 2014-12-03 11:34:35
 
var idArray = [];
for (var i = 0; i < data.length; i++) {
//活动控制测试
var result = controlAction(ObjectType.FSCHJH, data.PlanState, "HD004");
if (result == "N") {
return;
} else if (result == "W") {
mini.confirm("确定要执行此操作吗?", "提醒", function (isOk) {
if (isOk != "ok") {
return;
}
});
} else {
idArray.push(data[i].Id);
}
}


用的mini ui 框架,在for循环里面 有一个警告操作,用的mini.confim 如果点确定 继续循环填充数组,如果点取消就结束循环,但是现在的情况是 confirm 用的是一个回调函数,在他弹出来 提示选择框的时候 还在执行for 循环,我想实现在回调函数执行完了再执行后续的for循环 操作 应该如何解决?
...全文
2418 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
闪闪放光芒 2014-12-03
  • 打赏
  • 举报
回复
“在他弹出来 提示选择框的时候 还在执行for 循环”你这个是同步执行不应该出现这种情况吧? 在他弹出框的时候for循环是等待状态当你点击confirm后才会继续。
functionsub 2014-12-03
  • 打赏
  • 举报
回复
不要for循环了吧。
var idArray = [];
function action(idx){
    var result = controlAction(ObjectType.FSCHJH, data.PlanState, "HD004");
    if (result == "N") {
        return;
    } else if (result == "W") {
        mini.confirm("确定要执行此操作吗?", "提醒", function (isOk) {
            if (isOk != "ok") {
                return;
            }
            action(idx++);
        });
    } else {
        idArray.push(data[idx].Id);
    }
}
action(0);
wk714598352 2014-12-03
  • 打赏
  • 举报
回复
引用 1 楼 functionsub 的回复:
不要for循环了吧。
var idArray = [];
function action(idx){
    var result = controlAction(ObjectType.FSCHJH, data.PlanState, "HD004");
    if (result == "N") {
        return;
    } else if (result == "W") {
        mini.confirm("确定要执行此操作吗?", "提醒", function (isOk) {
            if (isOk != "ok") {
                return;
            }
            action(idx++);
        });
    } else {
        idArray.push(data[idx].Id);
    }
}
action(0);
谢谢 这个递归感觉可行 我试试
wk714598352 2014-12-03
  • 打赏
  • 举报
回复
引用 2 楼 u010036886 的回复:
“在他弹出来 提示选择框的时候 还在执行for 循环”你这个是同步执行不应该出现这种情况吧? 在他弹出框的时候for循环是等待状态当你点击confirm后才会继续。
因为那个confirm 用的是mini.ui的js模拟的 弹出框,在点确定的时候 是一个回调函数,我想让他先执行了这个回调函数再执行下面的操作。 系统原生的confirm是可以的。

87,997

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧