* 解决异步加载问题
* */
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
}
js的同步和异步问题通常是指ajax的回调,如果是同步调用,程序在发出ajax调用后就会暂停,直到远程服务器产生回应后才会继续运行。而如果是异步调用,程序发出ajax调用后不会暂停,而是立即执行后面的代码,服务器返回信息后会自动触发回调函数进行处理。相比较而言,异步调用的性能最佳,程序不会出现卡顿的现象,而同步调用则通常用于需要立即获得结果并实时处理的情况。打个比方:假如你想让四个手下分别去执行四个不同的任务,如果用“同步”的方法,就要先让第一个人去执行任务,这期间你和另外三个手下就呆呆地等,什么也不干,直到第一个人完成任务回来报告后再让第二个人去执行任务,依此类推;而如果用“异步”的方法,就可以把四个手下同时派出去执行任务,然后自己就可以去喝酒唱歌泡妞了,手下完成任务后只需要用手机向你汇报结果即可。