新手入坑Node,为什么会是这个样子?
发布于 7 年前 作者 codinglilong 3021 次浏览 来自 问答

最新入坑node,自己写了个小爬虫去抓别人网站的接口,然后做个前后端分离的小程序。发现有下面这种情况我改如何解决? 1.jpg 2.jpg 3.jpg

只有最后一条才会被正确的接收。我的程序并不是settimeout,只是模拟下返回。加上Promise也还是没有用。我改怎么做?

5 回复

没人知道这个问题吗?

哦,我知道是什么问题了 其实这是因为你的setTimeout运行的时候,res已经是最后一个了 和这个问题是一样的

for (var  i=0;i<10;i++){
setTimeout (()=>{
console .log (i);
},100)
}

这样会输出10个10,是因为循环完才执行settimeout 导致里面的值变了 你用了settimeout就会进入事件队列,你可以不用settimeout来模拟,你可以在res.end前面加大循环 或者在外围定义一个数组,接受到一个就push一个res,再在settimeout里面pop出res,再用res来end

纯手机打字难免格式不正确

404是不可能的,我测试过了,然而没有出现你这样的前3个是404,最后一个才是返回结果,不只能否给出全部的源码看一下

不确定你后端代码是怎么写的,但是你可以把你express 里面最后两个中间件儿注释掉 测测看

@Telanx 我也不知道为什么,但是我这就是全部代码了。前端就只有ajax请求。一次请求4条,后端就是接收get请求返回的。

回到顶部