鱼C论坛

 找回密码
 立即注册
查看: 2882|回复: 1

[学习笔记] es6语法之Promise()方法

[复制链接]
发表于 2017-7-17 08:12:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这种方法主要是判断异步程序的执行,如果没有他进行ajax的异步传参会很复杂,就得写一大堆的回掉函数传参,回掉套着回掉。。。比如:
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.         <meta charset="UTF-8">
  5.         <title>Document</title>
  6. </head>
  7. <body>
  8.         <script>
  9.         function a(callback){
  10.                 var json={
  11.                         name:'alltolove',
  12.                         fun:'swimming'
  13.                 }
  14.                 callback(json)
  15.         }
  16.        
  17.         a(function(cb){
  18.                 document.write(cb.fun)
  19.         })
  20.         </script>
  21. </body>
  22. </html>
复制代码

网页显示为:
saasdsasd.png


下列代码为使用Promise():
  1. let check=200
  2. function aaaa(resolve,reject){
  3.         if(check==200){
  4.                 resolve('aaaa sucsses')
  5.         }else{
  6.                 reject('aaaa fail')
  7.         }
  8. }
  9. function bbbb(resolve,reject){
  10.         if(check==200){
  11.                 resolve('bbbb sucsses')
  12.         }else{
  13.                 reject('bbbb fail')
  14.         }
  15. }
  16. function cccc(resolve,reject){
  17.         if(check==200){
  18.                 resolve('cccc sucsses')
  19.         }else{
  20.                 reject('cccc fail')
  21.         }
  22. }

  23. let tot=''

  24. new Promise(aaaa).then(function(val){
  25.         tot+=val
  26.         return new Promise(bbbb)
  27. }).then(function(val){
  28.         tot+=val
  29.         return new Promise(cccc)
  30. }).then(function(val){
  31.         tot+=val
  32.         document.write(tot)
  33. })
复制代码

这里的resolve参数可以传任何类型的值,在then()里面的val参数接收上边传过来的值,如果判断为else的reject()代码就不会再往下执行,直接报错。网页显示为:
asdasds.png
这种方式目前不支持ie浏览器,但是因为非常好用,许多主要开发移动端的公司都在用它(因为手机上的浏览器没有ie),jquery里有简单的promise的方法,一般都用jquery,但是我们也要理解他的原理。

点评

相当nb啊  发表于 2017-7-17 08:17

评分

参与人数 2荣誉 +5 鱼币 +10 贡献 +5 收起 理由
小甲鱼 + 5
不二如是 + 5 + 5 + 5 不要停~

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 21:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表