define(["Message"],function (Message) {
//事件流代码链式执行工具
function PromiseUtil(func) {
obj = {
flag:true,
catchError:true,
//执行当前需要执行的代码块
excute:function(flag,func){
try {
func.call();
//前面执行步骤没问题则继续执行下一步
this.flag = flag;
} catch (err){
this.catchError = false;
if(Message.check(err.utflag) && err.isAlert()){
alertmsg(err.message,err.type,err.tips);
} else {
console.error(err);
}
}
},
//定义下一步需要执行的方法块
then:function(func){
if(this.catchError === false)
return;
if(this.flag == null || this.flag == true)
func.call();
this.func = func;
},
//执行下一步需要执行的方法块
work:function(){
this.func.call();
}
};
return obj;
}
return PromiseUtil;
});
主要功能是实现代码块的流程式执行,现在生成代码是以下这种嵌套模式:
${code_1}.then({
${code_2}.then({
${code_3}.then({
······
})
})
});
要怎么样改造成下面这种链式的代码执行模式呢?
${code_1}.then({
${code_1}
}).then({
${code_2}
}).then({
······
});
如果还有其他优化意见,也请提供,蟹蟹。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.