小编sha*_*vis的帖子

使用node.js的递归模式循环

香港专业教育学院一直试图使用node.js迭代一系列城市,并发出迭代请求谷歌的方向每个(我然后JSON.parse抽象驱动时间).我需要找到一种同步执行此操作的方法,否则我将立即从每个城市的谷歌请求所有信息.我在http://tech.richardrodger.com/2011/04/21/node-js-%E2%80%93-how-to-write-a-for-loop-with-callbacks找到了一个很好用的模式/但无法使回调工作.正如您所看到的,我使用'show'函数来测试它.我的代码如下:

var request = require('request');
var fs = require('fs');
var arr = ['glasgow','preston','blackpool','chorley','newcastle','bolton','paris','york','doncaster'];
//the function I want to call on each city from [arr]
function getTravelTime(a, b,callback){
 request('https://maps.googleapis.com/maps/api/directions/json?origin='+a+'&destination='+b+'&region=en&sensor=false',function(err,res,data){
 var foo = JSON.parse(data);
 var duration = foo.routes[0].legs[0].duration.text;
 console.log(duration);
 });
};

function show(b){
 fs.writeFile('testing.txt',b);
};


function uploader(i){
 if( i < arr.length ){
   show( arr[i],function(){
   uploader(i+1);
   });
 }
}
uploader(0)
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是只输出数组中的第一个城市,并且回调/迭代永远不会继续.有什么想法,我出错了吗?  

design-patterns for-loop node.js

8
推荐指数
2
解决办法
3万
查看次数

标签 统计

design-patterns ×1

for-loop ×1

node.js ×1