CNode

一个循环的问题

问答
Rrover5056发布于10 年前最后回复10 年前8 回复3707 浏览0 收藏

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

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

nodean0.png nodean1.png nodean3.png

查看回复

回复 (8)

I
IchiNiNiIchi#1·10 年前

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

M
mabu233#2·10 年前

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

Z
zhangjh#3·10 年前

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

S
stonephp#4·10 年前

用了async从此没有烦恼

M
manxisuo#5·10 年前

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

来自酷炫的 CNodeMD

R
rover5056#6·10 年前

nodean2.png

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

I
IchiNiNiIchi#7·10 年前
引用 rover5056补充请教 我加了一层自运行的函数 但是还是不对 n还是一直12 这个闭包的问题出在哪里

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

R
rover5056#8·10 年前
参与回复
登录后即可参与回复。登录