|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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,但是我们也要理解他的原理。 |
评分
-
查看全部评分
|