- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试学习 nodeschool 的 learnyounode。
This problem is the same as the previous problem (HTTP COLLECT) in that you need to use http.get(). However, this time you will be provided with three URLs as the first three command-line arguments.
You must collect the complete content provided to you by each of the URLs and print it to the console (stdout). You don't need to print out the length, just the data as a String; one line per URL. The catch is that you must print them out in the same order as the URLs are provided to you as command-line arguments.
我对为什么我的解决方案不能正常工作感到困惑,因为它对我来说看起来一样,但功能更强大,而且我不确定他们的内部测试工作原理:
1. ACTUAL: ""
1. EXPECTED: "As busy as a dead horse also lets get some dero. Built like a sleepout no dramas lets get some chook. She'll be right thingo my she'll be right ute. "
2. ACTUAL: "She'll be right bizzo no worries she'll be right fair dinkum. We're going aerial pingpong no worries as busy as a gyno. "
2. EXPECTED: "She'll be right bizzo no worries she'll be right fair dinkum. We're going aerial pingpong no worries as busy as a gyno. "
3. ACTUAL: "He's got a massive pretty spiffy heaps she'll be right brizzie. He hasn't got a fly wire where shazza got us some strewth. She'll be right spit the dummy with it'll be fair go. We're going gobsmacked with as stands out like arvo. He's got a massive bush bash mate she'll be right slacker. "
3. EXPECTED: "He's got a massive pretty spiffy heaps she'll be right brizzie. He hasn't got a fly wire where shazza got us some strewth. She'll be right spit the dummy with it'll be fair go. We're going gobsmacked with as stands out like arvo. He's got a massive bush bash mate she'll be right slacker. "
4. ACTUAL: ""
4. EXPECTED: ""
我的代码:
var http = require('http');
var bl = require('bl');
var result = [];
var urls = process.argv.slice(2);
urls.forEach(function(url, i) {
http.get(url, function(response) {
response.pipe(bl(function(err, data) {
if (err) return console.error(err);
result[i] = data.toString();
if (i === urls.length - 1) {
console.log(result.join('\n'));
}
}));
});
});
官方解决方案:
var http = require('http')
var bl = require('bl')
var results = []
var count = 0
function printResults () {
for (var i = 0; i < 3; i++)
console.log(results[i])
}
function httpGet (index) {
http.get(process.argv[2 + index], function (response) {
response.pipe(bl(function (err, data) {
if (err)
return console.error(err)
results[index] = data.toString()
count++
if (count == 3)
printResults()
}))
})
}
for (var i = 0; i < 3; i++)
httpGet(i)
基本上第一个测试永远不会通过(尽管如果迭代数组中只有 1 个 url(而不是 3 个),第一个测试通过但其他测试不通过)。任何见解都会很棒。我不确定在哪里问这个问题,也许我只是遗漏了一些 JS 的东西,如果这不合适,我很抱歉。
最佳答案
您尚未确定是否已下载所有网址。
请求不一定按顺序返回。考虑3是否先回来。您将跳过其他两个 url,只打印出 3 个。
演示代码计算响应的数量,因此可以保证在打印出答案之前得到所有信息。
关于javascript - learnyounode #9 杂耍异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29464995/
我已经查看了有关此主题的其他线程,但仍然无法弄清楚为什么我的线程不起作用。有什么想法吗? var files = process.argv.slice(2); var count = 0; var r
我读了一些相同的教程问题,但我仍然无法理解。 我用下面的代码做对了 var httpModule = require('http'); var blModule = require('bl'); v
我一直在 learnyounode 的帮助下学习 Nodejs,但我陷入了杂耍异步。我的解决方案除了问题中最困难的部分外都有效 - 它打印的结果不按顺序排列,因为某些请求先于其他请求完成。我试图在不使
我正在尝试学习 nodeschool 的 learnyounode。 This problem is the same as the previous problem (HTTP COLLECT) i
我正在尝试学习 nodeschool 的 learnyounode。 This problem is the same as the previous problem (HTTP COLLECT) i
这里似乎有很多关于这个问题的问题,但没有一个与我的问题 AFAICT 直接相关。以下是问题陈述: This problem is the same as the previous problem (H
有很多方法可以编写此代码,但我不明白为什么我的版本不起作用。 该程序应从命令行获取 2 个参数。第一个是包含文件的文件夹的路径,第二个参数是文件扩展名。输出应仅打印与第二个参数具有相同扩展名的文件。当
我一直在努力解决 learnyounode 上的 JUGGLING ASYNC 任务。据我所知,我做的事情几乎是正确的,看起来问题出在异步的某个地方,而我自己试图避免bl或其他模块。我在没有其他模块的
所以我正在解决这个名为杂耍异步的learnyounode练习,它基本上给了我3个URL并要求我按照URL输入的顺序输出URL内容。 我想出了一个递归解决方案,其中一个回调调用另一个回调,同时维护退出计
在“LearnYouNode”练习中,我对任务 9 有以下问题。在提示中提到,此练习也可以使用“asycn”或“after”包来完成。我尝试了两者,但都失败了:|(我已经完成了推荐的解决方案,没有额外
我是 Node 的新手,我正在努力通过 nodeschool.io learnyounode 交互式类(class),我遇到了 http-collect 问题。 首先是使用第三方包的实际解决方案Buf
在learnyounode上做教程,遇到如下问题。来自描述: You will be provided with three URLs as the first three command-line
所以我现在正在学习node.js,并且之前做过一些多任务处理,我的概念是异步和多任务处理有很多相似的问题,这让我想到了我的问题。 官方针对这个问题的解决方案是: var http = requir
我正在通过 learnyounode 教程学习 node.js,但一直停留在 HTTP-COLLECT 练习中。我想让我的代码在没有第三方程序帮助的情况下工作。它几乎可以正常工作,但由于某种原因,它没
当我在第 14 行运行下面的 list[i] 时,返回未定义,我不知道为什么。特别是因为我的第 10 行日志按预期返回。下面是代码, 1 var fs = require('fs');
我正在尝试使用 OSX 终端中的“Learnyounode”来学习 Node.js。当我使用 'learnyounode run programfile.js programfile.js' 运行下面
我试图在 nodeschool.io 的“learnyounode”研讨会中解决“Juggling Async”问题。我在这里看到了很多关于这个问题的问题,它不起作用,因为 url 是从循环中调用的。
我不断收到以下错误: ✗ Error connecting to localhost:20496: connect ECONNREFUSED 注意:本地主机号总是在变化。 在 cloud9.ide 上
下面是nodeschool learnyounode模块的习题5 创建一个程序,打印给定目录中的文件列表,按文件扩展名过滤。您将获得一个目录名称作为您程序的第一个参数(例如 /path/to/dir/
这个程序让我很困惑。该程序的目标是计算文件中换行符的数量并在命令提示符下输出。 Learnyounode然后对文件运行他们自己的检查,看看他们的答案是否与您的答案相符。 所以我从答案开始: var f
我是一名优秀的程序员,十分优秀!