-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
如果由多个ajax请求,怎么样保证返回结果按顺序返回呢。
首先可以将所有的ajax请求变成同步。
async:false
这样请求顺序就和返回顺序一致了。
但是在真实的业务场景中,同步的ajax显然不太合理。
这里可以用es6中的promise.all()。来实现了
const getRandom = () => +(Math.random()*1000).toFixed(0);
const asyncTask = taskID => new Promise(resolve => {
let timeout = getRandom();
console.log(`taskID=${taskID} start.`);
setTimeout(function() {
console.log(`taskID=${taskID} finished in time=${timeout}.`);
resolve(taskID)
}, timeout);
});
Promise.all([asyncTask(1),asyncTask(2),asyncTask(3)])
.then(resultList => {
console.log('results:',resultList);
});
//请求顺序可以有所不同,但返回顺序是固定的 result:[ 1,2,3 ]
Metadata
Metadata
Assignees
Labels
No labels