function request(options) {
setTimeout(() => {
options.success && options.success(`data from ${options.url}`);
options.complete && options.complete();
}, 2000)
}
/*
request({
url: string,
success: function() {},
complete: function() {}
})
*/
function withConcurrency() {
// code here
};
request = withConcurrency(request, { max: 2 });
// 如上参数所示,同一时间只能发出 1 和 2 的请求。
// 1 和 2 同时发送,3 和 4 排队。
// 1 和 2 有响应后,3 、4 再去补位。
request({
url: '/api/1'
})
request({
url: '/api/2'
})
request({
url: '/api/3'
})
request({
url: '/api/4'
})
要求: