gpt4 book ai didi

node.js - 异步但顺序请求的模式

转载 作者:太空宇宙 更新时间:2023-11-04 02:24:45 24 4
gpt4 key购买 nike

我最近写了很多 NodeJS,这迫使我从不同的角度来解决一些问题。我想知道针对在异步请求环境中顺序(而不是并行)处理数据 block 的问题开发了哪些模式,但我无法找到任何直接相关的内容。

总结一下问题:

  1. 我有一个以数组格式存储的数据列表,需要处理。
  2. 我必须将此数据异步发送到服务,但该服务一次只能接受几个数据。
  3. 数据必须按顺序处理以满足服务的限制,这意味着不允许发出多个并行异步请求

在这个领域工作,我想到的最简单的模式是递归模式。类似的东西

function processData(data, start, step, callback){
if(start < data.length){
var chunk = data.split(start, step);
queryService(chunk, start, step, function(e, d){
//Assume no errors
//Could possibly do some matching between d and 'data' here to
//Update data with anything that the service may have returned
processData(data, start+step, step, callback);
});
}
else{
callback(data);
}
}

从概念上讲,这应该逐步完成每个项目,但直观上它很复杂。我觉得应该有一种更简单的方法来做到这一点。在处理此类问题时,有人倾向于遵循某种模式吗?

最佳答案

我的第一个思考过程是依赖对象封装。创建一个对象,其中包含有关需要处理的内容的所有信息以及有关已处理和正在处理的内容的所有相关数据,回调函数将仅调用该对象的“下一个”函数,该函数将依次开始处理下一条数据并更新该对象。本质上就像一个异步 for 循环一样工作。

关于node.js - 异步但顺序请求的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31149373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com