等到 'for loop' 或 'push' 完成,然后 运行 函数 - Javascript
Wait until 'for loop' or 'push' is complete then run function - Javascript
您好,我正在使用以下代码。我需要一些方法让脚本等到 clickButton() 在 运行 initialize() 之前完成。或者等到推送完成?任何帮助,将不胜感激。谢谢
$("#getButtonValue").click(clickButton);
function clickButton() {
for( i = 1; i < counter; i++){
var geocoder = new google.maps.Geocoder();
var address = $('#textbox' + i).val()
geocoder.geocode( { 'address': address}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
latCoords.push(results[0].geometry.location.lat());
longCoords.push(results[0].geometry.location.lng());
}
});
}
initialize();
}
我明白你想做什么了。
在不使用 promise 的情况下,一个简单的解决方法是创建一个计数器来查看是否所有 geocoder.geocode() 调用都已完成。
$("#getButtonValue").click(clickButton);
function clickButton() {
// A counter variable
int completeCount = 0;
for( i = 1; i < counter; i++){
var geocoder = new google.maps.Geocoder();
var address = $('#textbox' + i).val()
geocoder.geocode( { 'address': address}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
latCoords.push(results[0].geometry.location.lat());
longCoords.push(results[0].geometry.location.lng());
// Increment completeCount
completeCount++;
// If all geocoder.geocode() calls received an "OK", initialize()
if (completeCount == counter) {
initialize();
}
}
});
}
}
您好,我正在使用以下代码。我需要一些方法让脚本等到 clickButton() 在 运行 initialize() 之前完成。或者等到推送完成?任何帮助,将不胜感激。谢谢
$("#getButtonValue").click(clickButton);
function clickButton() {
for( i = 1; i < counter; i++){
var geocoder = new google.maps.Geocoder();
var address = $('#textbox' + i).val()
geocoder.geocode( { 'address': address}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
latCoords.push(results[0].geometry.location.lat());
longCoords.push(results[0].geometry.location.lng());
}
});
}
initialize();
}
我明白你想做什么了。
在不使用 promise 的情况下,一个简单的解决方法是创建一个计数器来查看是否所有 geocoder.geocode() 调用都已完成。
$("#getButtonValue").click(clickButton);
function clickButton() {
// A counter variable
int completeCount = 0;
for( i = 1; i < counter; i++){
var geocoder = new google.maps.Geocoder();
var address = $('#textbox' + i).val()
geocoder.geocode( { 'address': address}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
latCoords.push(results[0].geometry.location.lat());
longCoords.push(results[0].geometry.location.lng());
// Increment completeCount
completeCount++;
// If all geocoder.geocode() calls received an "OK", initialize()
if (completeCount == counter) {
initialize();
}
}
});
}
}