Promise.all() 案例: 异步查询出所有数据后,再一起回传

promise的所有用法
这裏是使用 Promise.all():
当你有多个 Promise 事件需要一起执行与完成时,就可以使用 Promise.all;
所以使用的时候,需要把异步函数组合成函数list;

//异步函数function getTrackRawData(trackIndex)        {            var trackname = res_tracks[trackIndex]['name'];            var sql = "SELECT count,lat,lon,ele,speed,distance,time,heading from t_race_gpxfiles_rows where gpxfilename =? ORDER by count;";            var params = [trackname];            return new Promise(function(resolve,reject){            //db操作是异步的                    db.all(sql, params, (err, rows) => {                    //回传结果后,把结果resolve除去,后续会存到Promise.all()的回传值中                    resolve(rows);                });            })        }//把函数塞到函数的list中        //make functions to promise        var function_list = [];        for(var i=0;i<res_tracks.length;i++)        {            function_list.push(getTrackRawData(i));        }//使用promise.all来等待所有函数执行完成        Promise.all(function_list)        .then(            values => {                for(i=0;i<values.length;i++)                {                    res_tracks[i]['data'] = values[i];                }                res.json({                    "message":"success",                    "data":res_tracks                })            }         )

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章