• promise的异步链式调用


    场景:  淘米  干净的米下锅  蒸米饭  吃米饭 ;这几个步骤是一个接着一个执行, 也就是只有前面的做完后, 才会去做后面的. 并且每一步都需要用一部分时间去执行.

     1 function deal(task, time) {
     2     return new Promise((resolve, reject) => {  //每次都返回一个新的promise对象, 
     3         console.log("开始" + task);
     4         setTimeout(() => {
     5             console.log(task + "完成了")
     6             resolve();
     7         }, time)
     8     })
     9 }
    10 
    11 // 执行后会每隔一秒显示 淘米  米下锅  蒸米饭  吃米饭
    12 deal("淘米", 1000).then(()=>{
    13    return deal("米下锅", 1000)  //每次返回新的promise对象
    14 }).then(()=>{                  //then参数注册两个函数,第一个函数对应上个promise的resolve ,第二个函数对应reject. 各层执行完才能执行下层
    15    return deal("蒸米饭",1000)
    16 }).then(() =>{
    17    return deal("吃米饭",100)
    18 })

     处理错误: catch能够抓住错误,catch的位置可以放到最后;

    deal("淘米", 1000).then(()=>{
       return deal("米下锅", 1000)
    }).then(()=>{
       // return deal("蒸米饭",1000)
        throw new Error("电饭锅坏了") //此处抛出错误,如果没有注册下一个then的reject函数,catch会接住,并且不会执行后面的代码
    }).then(() =>{
       return deal("吃米饭",100)
    })
        .catch(function (err) {
        console.log(err)
    })

      

  • 相关阅读:
    [NOI2016] 网格
    [十二省联考2019]春节十二响
    wordcloud的方法参数归纳汇总
    选择困难症
    连通能力
    [Tjoi2017]城市
    bzoj3732 Network
    bzoj3252 攻略
    Noip2018旅行
    [HEOI2015]兔子与樱花
  • 原文地址:https://www.cnblogs.com/dangdanghepingping/p/10700773.html
Copyright © 2020-2023  润新知