我很新的节点JS和我想明白了一两件事在这里:的Mysql里面插入一个for循环节点JS
,你可以看到有一个for循环迭代从数据库中选择槽排。
connection.query(/*select data*/)
for (var i = 0; i < rows.length; i++) {
var fulladdress = rows[i]['agency_full_address'];
var agency = rows[i]['agency_id'];
console.log('before:' + agency)
geocoder.geocode(fulladdress)
.then(function(res) {
console.log('after:' + agency)
/*populate table with agency and coordenates*/
})
.catch(function(err) {
console.log(err)
});
}
循环后我做的第一件事就是把详细地址和代理ID并记录结果是这样的:
before: 1
before: 2
before: 3
然后我运行一个功能转换的详细地址一家经纪公司成长为经合组织,它的运作良好。从那以后,我再次打印机构ID,但后来我的下一个结果
after: 3
after: 3
after: 3
这只是打印最后ID。我想这是因为nodejs是异步的。但在这种情况下我该如何解决这个问题。我需要的机构ID是一样的前后,所以我可以使用这些值来填充数据库表中,但在这一刻被填充这样
agency_id | latitude | longitude |
3 | 63.254587 | -39.221144 |
3 | 58.256254 | -48.656989 |
3 | 48.256254 | -58.356979 |
,应该是这样的
agency_id | latitude | longitude |
1 | 63.254587 | -39.221144 |
2 | 58.256254 | -48.656989 |
3 | 48.256254 | -58.356979 |
我怀疑这个陌生是因为你在'然后得到了'closure'函数的文档'geocoder.geocode(fulladdress)'的条款。有人能证实这一点吗? –