一个循环的问题
发布于 8 年前 作者 rover5056 2839 次浏览 来自 问答

准备做爬虫 爬单个页面是OK的 但是一共有13 每页20条 所以做了个循环 但是发现每次只请求了最后一页 不知道哪里出问题了 求大神解答下。。 <我看了下是先把循环昨晚了 然后 请求了一次。。。好奇怪.0.>

分别是代码 报错 还有 结果(结果只爬到最后一页)

nodean0.png nodean1.png nodean3.png

8 回复

楼主,你这是遇到两个很常见的坑,一个是闭包陷阱,一个是异步的流程控制。 关于闭包你可以参考这个 闭包陷阱,异步流程控制可以用 async

调用 res.end后,不能再调用 res.write 了

说句打击楼主的话,你这基本还算没入坑,node的异步机制还没有掌握。问题就是一楼所说,循环内闭包+异步流程控制

用了async从此没有烦恼

补充:你的问题不在Node,而在JavaScript。

来自酷炫的 CNodeMD

nodean2.png

补充请教 我加了一层自运行的函数 但是还是不对 n还是一直12 这个闭包的问题出在哪里

@rover5056 a = pageUrl[m]; 你把 a 设成全局变量了,前面得加个 var

@IchiNiNiIchi 发现了额。。。 谢谢大家

回到顶部