我正在学习Node.js并且正在从Node学校学习Learnyounode课程,虽然这是一个非常挑战,但我有点困惑......
我坚持的问题是练习9-杂耍异步......
我正在努力解决问题:
“您必须收集每个URL提供给您的完整内容并将其打印到控制台(stdout)。您不需要打印长度,只需将数据打印为字符串;每个URL一行问题在于你必须按照与作为命令行参数提供给你的URL相同的顺序打印它们。“
我已经尝试在一个名为'waiting'的变量中计算回调,然后在计算了3个回调时调用height
函数,但数据仍然总是以错误的顺序返回而我不是知道为什么....
complete()
答案 0 :(得分:1)
不保证异步回调按HTTP请求的顺序发生。
您可以通过更改以下内容来维护订单:
output.push(data.toString());
为:
output[i] = data.toString();
答案 1 :(得分:1)
这是因为你的http get请求是异步的。
而不是推送到输出数组执行此操作
output[i]=data.toString();
答案 2 :(得分:0)
通过关闭或将其作为属性添加到请求中,为每个请求保存“i”索引的值。然后,您可以使用该索引来订购回复。