QQ登录

只需一步,快速开始

搜索
【活动】边做笔记边学习,还能赢取奖学金!
查看: 64|回复: 1

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

[复制链接]
累计签到:282 天
连续签到:30 天
最佳答案
11 
发表于 2017-7-17 08:12:54 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

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

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

评分

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

查看全部评分

本帖被以下淘专辑推荐:

1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋手机版Archiver( 粤公网安备 44051102000370号 | 粤ICP备11014136号

© 2010-2017 FishC.com GMT+8, 2017-7-28 12:34 Powered by Discuz! X2.5 Theme by dreambred

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