我使用ajax(xhr)为服务器实现了请求数据的java脚本。
但不知何故,循环不是承诺。
我试图实施Promise但总是失败。
这是我想要转换成承诺的javascript
var resulA = ajaxA(a);
For(resultA){
var resultB = ajaxB(url?param1=resultA.id);
for(resultB){
var resultC = ajaxC(url?param1=resultA.id¶m2=resultB.id);
for(resultC){
}
}
}
你能给我一个如何将javascript变成Promise的指南吗?
编辑: 这里是我想要使用的java脚本承诺
var xhr = $.getJSON('${pageContext.request.contextPath}/someURL.action?');
console.log("after load ajax");
xhr.done(function(data){
for (var i = 0; i < data.length; i++) {
var xhrPolygon = $.getJSON('${pageContext.request.contextPath}/Koordinat/getKoordinateAja.action?idArea='+data[i].id);
xhrPolygon.done(function(resultData){
if(resultData.length>0){
for (var j = 0; j < resultData.length; j++) {
var koordinat = [resultData[j].areaLng,resultData[j].areaLat];
console.log(koordinat);
}
}
});
}
});
答案 0 :(得分:0)
javascript xhr并不是建立在承诺之上,但是新的fetch在这里有文档https://github.github.io/fetch/
如果你需要在这里创建一个承诺,你有一些代码
let promise = new Promise((resolve, reject) => {
if(success){
resolve();
}
else{
reject()
}
});
promise.then(r => console.log(r), e => console.log(e));