【发布时间】:2019-06-03 06:30:10
【问题描述】:
令人惊讶的是,谷歌在返回这个问题的结果时遇到了麻烦。
我想知道在排队等待下一个完成之前可以或应该并行运行多少个 Promise。我想这可能取决于用户的互联网,但我认为值得一问。
如果它基于用户的 ISP/连接类型,有没有办法在开始队列之前测试要发送的理想承诺数量?
另外,我严格来说是从客户端说的。所以,单线程js。
示例代码:
function uploadToServer(requestData){
return Promise((...));
}
function sendRequests(requestArray){
var count = 0;
for(var requestData in requestArray){
if(count<idealAmount){
uploadToServer(idealAmount).then(count--);
count++;
}else{
// Logic to wait before attempting to fire event
}
}
}
【问题讨论】:
-
depend on the user's internet并非所有承诺都是基于网络的。它们只是异步的。也许你应该在你的帖子中澄清这一点。 -
并行还是并发?节点是单线程的。
-
@ayxos 技术上并发。我道歉。据我了解,如果您只是继续发送承诺,它们将同时工作。我想知道是否有办法优化发送多个。感谢您指出了这一点。文字确实有意义。
标签: javascript promise network-programming es6-promise