不确定个数的回调函数怎么等待全部回调之后再执行下一步?
例如,我这里需要动态获取url地址,个数不确定,然后使用 function funcA(){ http.request(options, (ret) => { //TODO }) } 怎么样在所有回调全部执行后再执行下一步?另外,有些url的访问可能会超时(超过3m之后才会返回超时信息),该怎么处理?
15 回复
@xcstream 我也试过自己设一个计数器,但是难点就在于: 1.个数不确定,如果使用length之类的,就会遇到难点2; 2.有的请求会time-out,总不可能等3m之后再继续执行吧。
@liangtongzhuo 你的意思是setTimeout?我现在用的就是这个方法,但是感觉效果不是很好,例如请求5次,但是有2次为超时请求,其他三次都会有各自的setTimeout,时间若是设置得太短,则有些不是超时的请求也会被丢弃;时间若是设置的太长,则等待时间又会增长,况且随着请求数量的不确定性,这个方法人为控制的成本太大了。不知道我说的有没有道理?