ES6第六天学习Promise(重要)

一、构造函数:Promise(回调函数)
  • promise对象用于白哦是一个异步操作的最终状态(完成或失败),以及其返回的值
let promise=new Promise(function(resolve,reject){
//状态1
//resolve();
//状态2
reject();
});
//resolve才会调用
promise.then(()=>{
console.log("成功,没有问题")
}).then(()=>{
console.log("成功,可以无限调用then方法")
});
//reject后执行
promise.catch(()=>{
console.log("出现了重大问题");
});

在这里插入图片描述
在这里插入图片描述

二、使用Promise实现异步操作
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <script>
            const posts=[
            {title:"Post One",body:"this is post one"},
            {title:"Post Two",body:"this is post two"}
            ];
            function getPosts(){
                setTimeout(()=>{
                    let output='';
                    posts.forEach((post,index)=>{
                        output+=`<li>${post.title}</li>`;
                        
                    })
                    document.body.innerHTML=output;
                },1000)
            }
//            function createPost(post,callback){
//                setTimeout(()=>{
//                    posts.push(post);
//                    callback();
//                },2000);
//                
//            }
            function createPost(post){
                    return     new Promise((resolve,reject)=>{
                      setTimeout(()=>{
                      posts.push(post);
//                      const error=true;
                 const error=false;
                      if(!error)
                      {
                           resolve();
                      }
                      else{
                          reject("Error:something went  wrong ")
                      }
                     
                      },2000);                            
                      });                
            }
        createPost({title:"Post three",body:"this is post three"}).then(getPosts)    
        .catch(err=>console.log(err))
        
        </script>
    </body>
</html>

Promise.all

const promise1=Promise.resolve("hello");
        const promise2=Promise.resolve(20);
        const promise3=new Promise((resolve,reject)=>{
            setTimeout(resolve ,2000)
        })
        Promise.all([promise1,promise2,promise3]).then (values=>{
        console.log(values);
        })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值