Promise1

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    /*
    * 接受两个函数作为参数,分别代表成功fulfilled和失败reject
    * .then (0返回一个新的promise 实例,所以可以链式调用;
    * 当前一个promise状态改变时,.then()根据其最终状态,选择特定的状态响应函数执行
    * 状态响应函数可以返回新的promise ,或 其他值,不返回值我们可以人文返回一个null;
    * then始终在promise返回结果后执行
    *
    *
    * then()嵌套then()
    * 1. then()返回的还是promise实例
    * 2. 会等待里面的then执行完毕,在执行外面的
    *
    *
    * 遇到这种情况(展开也行嵌套也行),将其展开,便于阅读
     */
//    嵌套写法
//     new Promise(resolve => {
//         console.log("step 1");
//         setTimeout(()=>{
//             resolve("100")
//         },1000)
//     })
//         .then(value => {
//             console.log(value) //100
//             return new Promise(resolve => {
//                 console.log("step 1-1");
//                 setTimeout(()=>{
//                     resolve("110")
//                 },1000)
//             })
//                 .then(value =>{
//                     console.log("step 1-1-1");
//                     return value
//                 })
//                 .then(value =>{
//                     console.log("step 1-1-2");
//                     return value
//                 })
//                 .then(value =>{
//                     console.log("step 1-1-3");
//                     return value
//                 })
//         })
//         .then(value => {
//             console.log(value) //110
//             console.log("step 2")
//         })


//    展开 --写法(推荐)
    new Promise(resolve=>{
        console.log("step 1");
        setTimeout(()=>{
            resolve("100")
        },1000)
    })
        .then(value => {
            console.log(value) //100
            return new Promise(resolve => {
                console.log("step 1-1");
                setTimeout(()=>{
                    resolve("110")
                },1000)
            })
        })
        .then(value => {
            console.log("step 1-2");
            return value
        })
        .then(value => {
            console.log("step 1-3");
            return value
        })
        .then(value => {
            console.log(value)
            console.log("step 2");
        })
</script>
</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 首先,资源线下跌有两个原因: 1.master的整体数据在跌(以下数据是周对比),其中有几天的活跃是在涨的,原因是...
    Lopo阅读 2,481评论 0 0
  • 体验 你遇见的人,经历的事,看过的风景,深夜里的沉思,尘世间惊鸿的一瞥...都会慢慢累积下来,最终沉淀成生命的厚度...
    若兰ZHOU阅读 1,254评论 0 2
  • 01 没有一本正经的演说词,也没有多么华丽动听的辞藻,只有这简单生活中直白的又很任性的感悟。好了,不说我在这里得到...
    灼灼其华的秘密花园阅读 2,656评论 0 0
  • 雨中漫步的脚踝 环着银铃 溅起水花 尽管世界如此依旧美丽 可他仍希望 山上流下牛奶河 寸寸土地有金果
    月落姜阅读 3,437评论 0 1
  • 3月24日日志 销售目标2373 实际销售1098 差额1275 累计差额7826 今天比昨天卖的好点,新款文胸来...
    宋瑶瑶阅读 747评论 0 0