请教大家一个问题, js,异步执行

查看 48|回复 2
作者:nbin2008   
运行环境:nodejs
需求:提供一个方法 getD ,此方法内调用 ajax 接口获取数据,然后对外输出
1 、异步调用,比如会同时执行 30 次 getD
2 、当第一次调用 getD ,方法内没有数据,会从 ajax 拿数据,每次拿 10 条,等待中,当拿到数据后,用一条对外提供
3 、当第二次及后续调用 getD
a 如果有前面(第一次)正在 ajax 中,则等待,当 ajax 请求拿到数据后,第二次及后续的用拿到的数据
b 如果前面没有 ajax 中,则直接使用数据
4 、当 ajax 拿到的数据用完后,重复 2-3 ,但 ajax 每次请求间隔,须相隔 2s
不知道咋写,写出的也不满足,谢谢大家
InDom   
好像没啥难度?
做一个 对象,首先需要一 or 两个锁,然后需要一 or 两个队列。
发起 ajax 需要过一下锁,ajax 发出前锁定,ajax 成功后,锁设置过期时间 2s 。
getD 先检查队列是否能取到,成功就返回,失败就 ajax , 如果发出就等成功,失败就把回调推入等待队列。
ajax 成功后挨个讲结果回调给等待队列。
shiny   
这里要考虑一个问题,只有一个进程还是会有多个进程。如果是单进程的,直接用变量就能实现;多进程需要借助其他服务。
PS:你的描述够详细了,ChatGPT 写出来的就已经八九不离十了。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部