各呼び出しの間に1秒の遅延でAPIを呼び出す必要があります。私はループのためにタイムアウトを設定している場合のみ、別の1回の呼び出しの間に2秒の遅延がある関数呼び出し間のタイムアウトを設定する
for(var i=0; i < contentSize; i++){
var content = contentArray[i];
var j = table[i];
var thisColumn = document.getElementById(j);
if(content.includes('dl-media')){//content is image
setTimeout(function() {evaluateImage(content, thisColumn); }, 2000);
}
else if(content != ""){//content is text
// evalutaeText(language, content, thisColumn);
}
else{
$(thisColumn).replaceWith("<div>No content</div>");
}
}
、しかし、それは時間がかかりすぎる:私は、タイムアウトが動作しないでこのコードを持っています私は関数呼び出しの遅延だけが必要です。
$.ajax({
url: "https://westus.api.cognitive.microsoft.com/contentmoderator/moderate/v1.0/ProcessImage/Evaluate?" + $.param(params),
beforeSend: function(xhrObj){
// Request headers
xhrObj.setRequestHeader("Content-Type","application/json");
xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","bd43e");
},
type: "POST",
// Request body
data: "{'DataRepresentation':'URL', 'Value':" + content +"}",
})
.done(function(data) {
$(thisColumn).replaceWith("<div id="+thisColumn.value+">" + data.AdultClassificationScore +"<br>"+ data.RacyClassificationScore + "</div>");
})
.fail(function() {
$(thisColumn).replaceWith("<div id="+thisColumn.value+">Failed</div>");
});
可能な複製(http://stackoverflow.com/questions/750486/javascript-closure-inside- loop-simple-practical-example) – Teemu