私はノードのjsに非常に新しいですし、私はここに一つのことを理解しようとしています:あなたが見ることができるようMySQLは、ループのための内側に挿入するノードの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が非同期であるためだと思います。この場合、どうすればこの問題を解決できますか?私はこの
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 |
ようにする必要がありますように移入されているので、私は、データベース内のテーブルを埋めるために、これらの値を使用する前と後の代理店IDが同じである必要があるが、この瞬間に
のドキュメントを確認することができます
'geocoder.geocode(fulladdress)'の '節です。誰かがこれを確認できますか? –