我的承诺返回未定义的值。我不确定如何在node.js页面中正确执行此功能。你可以帮我解决这个问题,以便在我的上下文中以完美的方式返回地理编码后的所有值!谢谢你
merge_location({
entities,
context,
message,
sessionId
}) {
return new Promise(function(resolve, reject) {
var location = firstEntityValue(entities, 'location');
if (location) {
geocoder.geocode(location).then(function(res) {
console.log(res);
context.location = location;
context.lat = res[0].latitude;
context.lng = res[0].longitude;
delete context.MissingLocation;
}).catch(function(err) {
context.MissingLocation = true;
delete context.location;
delete context.lat;
delete context.lng;
console.log("Il n'y a pas de ville ");
});
} else {
context.MissingLocation = true;
delete context.location;
delete context.lat;
delete context.lng;
console.log("Il n'y a pas de ville ");
}
console.log("I want to return this" + context.location + ' ' + context.lat + ' ' + context.lng);
return resolve(context);
});
}
答案 0 :(得分:0)
您不需要说return resolve(...
。相反,您只需致电resolve(...
例如:
function myPromiseFunction(x) {
return new Promise(function (resolve, reject) {
// Do your lengthy processing with x here
if (everyThingLooksGood) {
resolve(thingYouWantToReturn);
} else {
reject("ERROR: Things didn't go according to plan!");
}
});
}