JavaScriptでプロミスに問題がありました。私がしようとしているのは、アドレスのリストを取得した後、各アドレスについて、地理座標APIを呼び出してlat lngを取得する必要があります。その後、ヒートマップとともにマーカーをプロットするように進みます。 )問題は今、プログラムはちょうどgetBranchLatLng(で停止JavaScriptプロミスを実行していません.then()
function getBranchLatLng(address, branchName, total, queKey){
return new Promise(function(resolve){
var key = jQuery.rand(geoCodKeys);
var url = 'https://maps.googleapis.com/maps/api/geocode/json?key='+key+'&address='+address+'&sensor=false';
$.ajaxq (qyName, {
url: url,
dataType: 'json'
}).done(function(data) {
var address = getParameterByName('address', this.url);
var index = errorArray.indexOf(address);
try{
var p = data.results[0].geometry.location;
var latlng = new google.maps.LatLng(p.lat, p.lng);
var markerItem =
{
'lat': p.lat,
'lng': p.lng,
'address': address,
'branchName': branchName,
'total': total,
};
console.log(markerItem);
resolve(markerItem);
if (index > -1) {
errorArray.splice(index, 1);
}
}catch(e){
if(data.status = 'ZERO_RESULTS')
return false;
//on error call add marker function for same address and keep in Error ajax queue
getBranchLatLng(address, 'Error');
if (index == -1) {
errorArray.push(address);
}
}
});
//mentain ajax queue set
queuCounter++;
if(queuCounter == setLimit){
queuCounter = 0;
}
});
}
)と偶数(addForecastMarkerに入ることはありません:
let promiseKey = Promise.all(
result.map()
);
var addedMarkers = promiseKey.then(
markers => Promise.all(
markers.map()
)
)
.then(drawForecastHeatmap);
私はジオコードAPIを呼び出す部分:ここに私のコードです私はジオコードからいくつかの緯度をプリントアウトすることができました。
私を返すアドレスの一部:
error_message: "Invalid request. Missing the 'address', 'bounds', 'components', 'latlng' or 'place_id' parameter."
results :[]
status: "INVALID_REQUEST"
「は、それらのアドレスを解決する方法上の任意のアイデアをINVALID_REQUEST:私は、リンクを拡張しようとすると、
jquery.min.js:4 GET https://maps.googleapis.com/maps/api/geocode/json?key=&address= 400()
はその後、私はこれを取得していますプロミスの親に戻る?
ありがとうございます!
あなたはgetBranchLatLng mybeで拒否を使用しないでください。エラーが表示され、それが約束が止まる理由です。 –
@AmitWagnerあなたはそのチャンクをcatch()する必要がありますか? – hyperfkcb
あなたのAjax関数では、何らかのエラーがある可能性があります。あなたがコードを継続するかどうかを確認するために解決しようとするか、または拒否を使用して、約束のチェーンのエラーを処理してください –