ES6 Promise 解决异步嵌套问题

const {log:Log,info:Info,error:Err}=console;//对象方法解析赋值,将console的常用方法赋值简写
function runAsync(url,data){
    var p = new Promise(function(resolve, reject){
        //做一些异步操作
        setTimeout(function(){
            console.log('执行完成');
            resolve({url:url,data:data});
        }, 400);
    });
    return p;
}
Promise.all([runAsync("www.baidu.com",{a:1}),runAsync("www.baidu.com",{a:1})]).then(function (data) {
    Log(data);
});

输出结果将会把两个runAsync的resolve集合到一个数组中

执行完成
执行完成
[ { url: ‘www.baidu.com’, data: { a: 1 } },
{ url: ‘www.baidu.com’, data: { a: 1 } } ]

推荐阅读更多精彩内容