本人node新手,刚接触node,对于异步的编程方式还是不了解。
我在爬取一个网站的时候,想要用map函数来并发的获取1000个网址。但是并发数太多的话容易被禁。了解到async模块可以非常好的解决这个问题,请问还有别的方式来解决这个问题吗?谢谢大家
我用的httpclient是axios
async是回调风格的,对初学者友好,并发数限制mapLimit也有的,eventproxy亦然。Promise流派的可以使用bluebird,如果node版本高,原生Promise用着也自然
那为什么不用async呢
来自酷炫的 CNodeMD
@DevinXian 你好,谢谢回复。
@dbit-xia 我想了解一下这个问题还有更好的思路没
@DevinXian 刚看到你的回复,我就去查了相关的概念,收获很大,非常感谢。 请教一下,现在主流的方式是什么呢?是async来处理回调函数呢,还是使用Promise+co这样的库来实现呢,还是Promise+async/await来实现呢? 另外,我看到co这个库也非常不活跃了。那现在如果使用Promise方式来开发的话,还推荐使用co吗?不使用co的话,只能使用async/await来实现了吧?
@hujianxin 推荐使用co啊 或者使用bluebird
@magicdawn 你造了不少轮子啊
@hujianxin 目前都在趋向语言层面上的同步,所以直接上async/await没问题,用这个离不开Promise的哦
@hapiman 谢谢推荐,我发现co的开发很不活跃了,原作者不干了。我打算使用async/await,因为我不用在项目上,node最新版也支持async/await了。
@DevinXian 谢谢推荐,我也是这样想的,直接用node最新版,连babel都不需要了。离不开Promise没问题,感觉这是个趋势,我使用的httpclient是axios,也是Promise的,完全没问题。
@magicdawn 谢谢,我打算使用async/await了。
@DevinXian 连bluebird都不需要了,能用原生的就用原生的。。。
是啊…先找一圈, 没找到合适的就自己开干了…