突发控制多个ajax请求

我有一个我处理的$.get请求列表

 $.when(...requests).then((...responses)=>{}) 

问题是API Im调用的突发速率,因此立即发送所有请求将使其中的一小部分失败。

是否有一种简单的方法可以使用jquery立即发送这些请求?

$ .get也应该返回Promise接口,所以你可以像这个例子一样链接它们:

 var urls = ["url1", "url2", "url3"]; var responses = []; /*---- vanilla js example for use in snippet ------- */ function fakeGet(url) { return new Promise(resolve => setTimeout(resolve, 1000, url + ' response')); } urls.reduce((chain, url) => { return chain.then(res => { res? responses.push(res) : ''; console.log('getting: ' + url); return fakeGet(url); }); }, Promise.resolve()).then(res => { responses.push(res); console.log('Complete!\n' + responses.join("\n")); }); /* --------------- end of vanilla snippet ---------------*/ /* ------- using jQuery $.get -------------------- urls.reduce((chain, url) => { return chain.then(res => { res? responses.push(res) : ''; return $.get(url); }); }, $.when()).then(res => { responses.push(res); console.log('Complete!\n' + responses.join("\n")); }); ---------------------------------------- */