zoukankan      html  css  js  c++  java
  • promise解决多个异步回调函数的返回值需要统一处理的问题

     len = infodata.length;
    
            if (len < 5) {
                for (var i = 0; i < len; i++) {
    
    
                }
            } else {
                var html,ids=[];
                for (var i = 0; i < 5; i++) {
                    var l = parseInt(Math.random() * 10);
                    ids.push(infodata[l].id)
                }
               //需要用每一个id去查询返回的不同的数据,最后进行统一处理
                getAllResults(ids, function(res){
                    console.log(res) 
    
                })
            }
    
    
    
    function getAllResults(groupIds, callBack) {
                let allResults = []
            //对多个promise进行统一处理,返回结果 Promise.all(getPromiseArray(groupIds)).then(
    function (values) { for (let i = 0; i < values.length; i++) { if(values[i].data){ allResults.push(values[i].data) } else { allResults.push(values[i]) } } callBack(allResults) }) }
          // 返回多个成功的promise对象
    function getPromiseArray(groupIds){ var promiseArray = []; videoArr = []; for (var i = 0; i < groupIds.length; i++) { let promise = play(groupIds[i]); promiseArray.push(promise) } return promiseArray; } function renderdata(infodata) { l = parseInt(Math.random() * 10); return new Promise(function (resolve, reject) { return play(infodata[l].id).then(function (res) { return resolve(res) }) }) } function play(id){ var params={ cameraid:id } return new Promise(function(resolve,reject){ $s.get('artemispost/getCameraPreviewURL_S.do', params, function (res) { resolve('http://'+Math.random()*10) }, true,true) })
  • 相关阅读:
    中文句子相似度之計算與應用
    《The Elder Scrolls V: Skyrim》百般冷门却强力职业
    《老滚5 》买房、娶老婆详尽攻略
    关于组播239.255.255.250
    Windows事件ID大全
    事件查看器常见ID代码解释
    Windows路由表详解
    两种动态加载JavaScript文件的方法
    80后的你们还记得这些游戏吗
    谷歌和HTTPS
  • 原文地址:https://www.cnblogs.com/h5it/p/14005364.html
Copyright © 2011-2022 走看看