马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这种方法主要是判断异步程序的执行,如果没有他进行ajax的异步传参会很复杂,就得写一大堆的回掉函数传参,回掉套着回掉。。。比如:<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
function a(callback){
var json={
name:'alltolove',
fun:'swimming'
}
callback(json)
}
a(function(cb){
document.write(cb.fun)
})
</script>
</body>
</html>
网页显示为:
下列代码为使用Promise():let check=200
function aaaa(resolve,reject){
if(check==200){
resolve('aaaa sucsses')
}else{
reject('aaaa fail')
}
}
function bbbb(resolve,reject){
if(check==200){
resolve('bbbb sucsses')
}else{
reject('bbbb fail')
}
}
function cccc(resolve,reject){
if(check==200){
resolve('cccc sucsses')
}else{
reject('cccc fail')
}
}
let tot=''
new Promise(aaaa).then(function(val){
tot+=val
return new Promise(bbbb)
}).then(function(val){
tot+=val
return new Promise(cccc)
}).then(function(val){
tot+=val
document.write(tot)
})
这里的resolve参数可以传任何类型的值,在then()里面的val参数接收上边传过来的值,如果判断为else的reject()代码就不会再往下执行,直接报错。网页显示为:
这种方式目前不支持ie浏览器,但是因为非常好用,许多主要开发移动端的公司都在用它(因为手机上的浏览器没有ie),jquery里有简单的promise的方法,一般都用jquery,但是我们也要理解他的原理。 |