ちょっと、jsonpと同じコールバック関数を使って複数のリクエストを呼び出せるようにしたいと思います。私が現在やっているやり方は、各呼び出しの間隔を設定することです。これは、10回の要求呼び出しを行いたい場合、すべてのデータを取得するのに10秒かかります。私は時間を短縮すると、それはparseerrorを返します。jsonpと同じコールバック関数を使用して複数のリクエストを行う
これらの要求をほぼ同時に行うことができる方法があるかどうかは疑問でした。ここで
は、Ajaxリクエストのコールのために私のコードです:(関連するコード)var parameterMap = OAuth.getParameterMap(message.parameters);
console.log("3");
$.ajax({
'url' : message.action,
'data' : parameterMap,
'dataType' : 'jsonp',
'async' : 'true',
'jsonpCallback' : 'cb',
'cache': true
})
.done(function(data, textStatus) {
console.log("Coming in");
var mapIndex = yelpRequestCounter.toString();
console.log("Map Index being set is: " + mapIndex);
yelpResults = yelpResults.set(mapIndex, data.businesses);
console.log("4");
console.log("Success promise: " + yelpRequestCounter);
console.log("Ending");
if(yelpRequestCounter == 9){
findPriorityResuts(subPoints);
yelpRequestCounter = 0;
}
// console.log('success[' + JSON.stringify(data) + '], status[' + textStatus + ']'); //', jqXHR[' + JSON.stringify(jqXHR) + ']\n');
}
)
.fail(function(data) {
console.log("Failed")
// console.log('error[' + errorThrown + '], status[' + textStatus + '], jqXHR[' + JSON.stringify(jqXHR) + ']');
}
);
}
私はすべての私のデータを取得していた場合、私は思ったので、私のコールバック関数は、単に空のメソッドであります約束では、私は間違いがないでしょう(私は間違っていました)。私は、時間を短縮したり、悪い接続のある場所にあった場合、これはほとんど機能しません
var generateBusiness = function(term, subPointResults){
console.log("generateBusiness is being called");
var waitForCB = setInterval(function(){
console.log("CB Counter = " + yelpRequestCounter);
latlngString = subPointResults[yelpRequestCounter].lat().toString() + "," + subPointResults[yelpRequestCounter].lng().toString();
yelpSearch(term, latlngString,subPointResults);
yelpRequestCounter++;
console.log(yelpRequestCounter + "---------------------");
if(yelpRequestCounter === subPointResults.length){
console.log("It stops!");
clearInterval(waitForCB);
}
},1000);
}
:ここ
は、要求を行う機能です。あなたの時間と助けてくれてありがとう! :)
はあなたが起草気でしょうか?私の理解のために、私は大量のAjaxリクエストをたくさん作る必要がありますか? requestNから取得するデータの応答ですか? – lobcity42
こんにちは@ lobcity42、 'then()'の中のコールバックは、when()で行われたすべてのajax呼び出しが完了(完了)した後にのみ実行されます。したがって、各Ajaxレスポンスを別々に待つ必要はありません。 response1、response2..etcは、Ajax呼び出しから返されるresponseDataです。 – Piyush
また、$ .when()関数内で必要なだけ多くのajax呼び出しを行うことができます。 – Piyush