美文网首页
promise 循环ajax,依次执行,同步

promise 循环ajax,依次执行,同步

作者: yzc123446 | 来源:发表于2017-10-17 14:14 被阅读374次
    var arr=[1,2,3,4,5,6,7,8,9]
    
      function PromiseForEach(arr, cb) {
        let realResult = []
        let result = Promise.resolve()
        arr.forEach((a, index) => {
          result = result.then(() => {
            return cb(a).then((res) => {
              realResult.push(res)
            })
          })
        })
    
        return result.then(() => {
          return realResult
        })
      }
    
      PromiseForEach(arr, (ele) => {
    
        return new Promise((resolve, reject) => {
              setTimeout(() => {
                console.log(ele);
                return resolve(ele);
              }, Math.random()*1000);
        })
    
      }).then((data) => {
        console.log("成功");
        console.log(data);
      }).catch((err) => {
        console.log("失败");
        console.log(err)
      });
    

    相关文章

      网友评论

          本文标题:promise 循环ajax,依次执行,同步

          本文链接:https://www.haomeiwen.com/subject/aeaydxtx.html