我对javascript中的Promise实现还很新。虽然我有一个简单的例子,但是在我弹出Google API高程回调函数后它没有用。我非常感谢有人可以帮我解决这个问题,因为我打算用这个方法编号在我的申请中的时间。
这是我当前的Promise函数代码(在javascript类结构中定义):
LinkClass.prototype.getElev = function(coordinate)
{
return new Promise(function(resolve,reject)
{
//get User elevation again, because it is possible that the user elevation did not lock
var locations = []; //locations array
locations.push(coordinate);
// Create a LocationElevationRequest object using the array's one value
var positionalRequest = {'locations': locations}
//get User elevation for antenna elevation calculation
var elevator = new google.maps.ElevationService();
elevator.getElevationForLocations(positionalRequest, function(results, status)
{
if (status == google.maps.ElevationStatus.OK)
{
// Retrieve the first result
if (results[0])
{
resolve(results[0].elevation.toString());
}
else
reject('No valid result was determined from the Google Elevation service. Please try again');
}
else
reject('Google Elevation service was not available. Please try again');
});
}); //end of promise function
}
然后我实现了这个功能:
LinkClass.prototype.drawLine = function()
{
//do other stuff...
this.getElev(this.UserLocation).then(function(response){
//for now just print the result
alert(response);
},function(Errortxt){
alert(Errortxt);
});
//do other stuff
}
我真的需要让这个工作好! 感谢
答案 0 :(得分:0)
完全忘了发布这个问题的答案。再次感谢您的投入。对于它的价值,我在这里发布的代码对于实现promises是正确的,如果你想同步并使用回调函数的答案,那真的很酷......对于所有实际的目的,这在大多数情况下默认工作浏览器不包括外部" Promise javascript"文件或其他,Internet Explorer除外。 (他们应该很快就会注意到他们的浏览器开发技能正在逐渐消失)。
以下是我使用的标准承诺实施的链接,支持最低浏览器版本:) Promise browser impl & support