javascript异步方法能否在不同时间返回多个值?
我有一个异步返回的值列表,但每次返回的值数量有限 所以我调用了我的函数一次,它有一个由20个不同元素组成的数组,比如[1,2,…,20],它一直每秒返回5个元素。所以我想: [1,2,…,5]在0秒时, [6,7,…,10]在1秒时, 等等 我在考虑使用缓冲区文件。如果这是一个有效的解决方案,有人能告诉我如何为给定的示例实现它吗?异步生成器函数(或方法)可以随时间生成(松散地返回)一系列值。下面是一个例子:javascript异步方法能否在不同时间返回多个值?,javascript,node.js,Javascript,Node.js,我有一个异步返回的值列表,但每次返回的值数量有限 所以我调用了我的函数一次,它有一个由20个不同元素组成的数组,比如[1,2,…,20],它一直每秒返回5个元素。所以我想: [1,2,…,5]在0秒时, [6,7,…,10]在1秒时, 等等 我在考虑使用缓冲区文件。如果这是一个有效的解决方案,有人能告诉我如何为给定的示例实现它吗?异步生成器函数(或方法)可以随时间生成(松散地返回)一系列值。下面是一个例子: 函数sleepRandom(最大值){ 返回新承诺(resolve=>setTimeo
函数sleepRandom(最大值){
返回新承诺(resolve=>setTimeout(resolve,Math.floor(Math.random()*maxMs));
}
异步函数*示例(最大值){
yield-1;//显式值的示例
//等待500毫秒
等待睡眠(800);
//循环示例
对于(设i=0;i{
对于等待(让示例(10)的值){
console.log(值);
}
})()
.catch(错误=>{
控制台错误(error);
});代码>您可以使用节点:
var events=require('events');
函数块(arr,chunksize=5,delay=1000,em=null){
如果(!em)em=new events.EventEmitter();
如果(arr.length>0)设置超时(()=>{
em.emit('nextChunk',arr.splice(0,chunksize));
spitChunks(arr、chunksize、delay、em);
},延误);
返回em;
}
设数字=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20];
让发射器=块(数字);
on('nextChunk',data=>console.log(data));
您的情况是。这意味着您应该询问您正在处理的是什么,而不是询问异步函数是否可以“在不同时间返回多个值”,这肯定是错误的问题。@amn,谢谢您的建议,我下次提问时一定会记住这一点。谢谢,这真的很有帮助!