Select to view content in your preferred language

Making request synchronous

3861
9
02-24-2017 08:22 AM
roshnibasu
Occasional Contributor

Is there a way to make the esri/request synchronous?

esriRequest(url, {
responseType: "json",
callbackParamName: "callback"
}).then(function(response){
console.log(resp);
});

9 Replies
FlavieMORAUX1
Frequent Contributor

Hy roshni basu,

I ask myslef the same question. Have you found a way to do that?

Regards,

Flavie

roshnibasu
Occasional Contributor

Hi Flavie,

I had resolved this issue by making an API at my java code. And then call that API from my javascript making call synchronous.

Regards

Roshni

FlavieMORAUX1
Frequent Contributor

Hi Roshni,

I found another solution, I request myself with dojo class "request/xhr".

Regards,

Flavie

var layerInfo = null;

var requestURL = layerUrl + "?f=json";
requestXHR(requestURL, {
   handleAs: "json",
   sync: true,
   headers: {
      "X-Requested-With": null
   }
}).then(function(data){
   layerInfo = data;
});

return layerInfo; 

AndresCastillo
MVP Regular Contributor

Although I see you have the dojo class "request/xhr" property of  sync set to a boolean value of true, then object still has a .then method promise.

Can you help me understand how this is synchronous please?

0 Kudos
LeoLiu1
Frequent Contributor

Hi Andres, 

Check the doc for dojo/request/xhr here: 

dojo/request/xhr — The Dojo Toolkit - Reference Guide

AndresCastillo
MVP Regular Contributor

Thank you Leo.

I understand that the requestXHR function is set to sync.

But after it runs, it returns a promise, which would make it async again, right?

0 Kudos
LeoLiu1
Frequent Contributor

Hi Andres,

dojo/request/xhr uses XMLHttpRequest.open to perform the request. If 'sync' is true, the promise won't be returned until the request has completed.

AndresCastillo
MVP Regular Contributor

Thank you Leo for your replies.

I will have to do a small test on different scenarios of this to see its' effect on the application's behavior.

0 Kudos
MeghanKulkarni
Occasional Contributor

Thanks worked like a charm.

Meghan Kulkarni

0 Kudos