* 解决异步加载问题
* */
function promise1(fun){
this.fun1=function(){}
this.fun2=function(){}
try{
fun(this.sol)
}catch(err){
}
}
promise1.prototype={
fun1:function(){},
fun2:function(){},
sol:function(res){
setTimeout(function(){
promise1.prototype.fun1(res)
promise1.prototype.fun2(res)
},0)
},
then:function(fun1){
promise1.prototype.fun1=fun1
return this
},
err:function(fun2){
promise1.prototype.fun2=fun2
}
}
/**
*方法使用:方法1比方法2先执行
**/
new promise1(function(door){
functionA(door)//方法1
}).then(function(){
functionB() //方法2
})
functionA : fucntion(){
door
}
方法1 内部用了var 表示内部变量 执行完一次后会自动释放;方法2 内的变量cc不能与方法1重名;
示例代码如下 测试可以
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script language="javascript" type="text/javascript">
var str=''
function cfun(obj) { str += obj.value }
function selall(){
var cc = document.getElementsByTagName("input")
for (var i = 0i <cc.lengthi++) {
cfun(cc[i])
}
alert(str)
}
</script>
</head>
<body>
<input type="text" id="txt1" value="你好" />
<input type="text" id="txt2" value="朋友" />
<a href="javascript:selall()">点击显示</a>
</body>
</html>