const ajax1 = () => timeout(2000).then(() => { console.log('1'); return 1;});const ajax2 = () => timeout(1000).then(() => { console.log('2'); return 2;});
const ajax3 = () => timeout(2000).then(() => { console.log('3'); return 3;});//并且把返回的数据先后放到数组data中const timeout = ms => new Promise((resolve, reject) => { console.log(11111111) setTimeout(() => { resolve(); }, ms);});function mergePromise2(ajaxArray) { let promiseArr = [] let arr = []; let index = 0 return new Promise((res,rej) => { ajaxArray.forEach((promise,i) => { let p = promise() promiseArr[i] = p Promise.resolve(promiseArr[i-1] || 0).then((tag)=>{ p.then((val)=>{ console.log("🚀 ~ file: test14.js:33 ~ Promise.resolve ~ val:", i, val) arr[i] = val index++ if(index == 3){ res(arr); } }) }) }) }); } mergePromise2([ajax1, ajax2, ajax3]).then(data => { console.log('done'); console.log(data); // data 为 [1, 2, 3]});