我已经得到了节点地理编码器的一个基本示例,但是我无法得到响应以进入调用函数
var address = userUpdates.address + " " + userUpdates.city + ", " + userUpdates.state + " " + userUpdates.zip;
geocoder.geocode(address)
.then(function(res) {
console.log(res);
})
.catch(function(err) {
console.log(err);
});
console.log生成正确的JSON
[
{
latitude: 35,
longitude: -78.5,
country: 'United States',
city: 'Clayton',
state: 'North Carolina',
stateCode: 'NC',
zipcode: '27520',
streetName: 'Main St',
streetNumber: '100',
countryCode: 'US'
}
]
但是我无法将res分配给将在geocoder.geocode函数之外保留的任何内容
答案 0 :(得分:0)
您是否尝试在geocoder.geocode函数之外创建一个全局变量来保存值?
var globalRes = null;
geocoder.geocode(address)
.then(function(res) {
globalRes = res;
console.log(res);
})
.catch(function(err) {
console.log(err);
});
答案 1 :(得分:0)
我认为你应该能够做到这样的事情: -
var response = null;
geocoder.geocode(address)
.then(function(res) {
response = res;
console.log(res);
})
答案 2 :(得分:0)
欢迎来到回调世界。
这是一个简化的代码示例,可以帮助您入门。
function myBigFunction() {
// Here is part 1:
console.log("I am part 1");
// Now, call something async and wait for the callback
myAsyncFunction(function (result) {
console.log("I am part 2, with the results from myAyncFunction");
});
function myAsyncFunction(callback) {
var returnValue = "This is returned";
window.setTimeout(function () {
// Call the callback and make myBigFunction pick back up.
callback(returnValue);
}, 250);
}
}
myBigFunction();
因此,在您的示例中,您需要类似的内容:
function doGeoCoder(callback) {
geocoder.geocode(address)
.then(function(res) {
callback(res);
console.log(res);
})
.catch(function(err) {
console.log(err);
});
}
doGeoCoder(function(res) {
console.log("I'm in the calling function's callback with");
console.log(res);
});