我很新的節點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)'的條款。有人能證實這一點嗎? –