<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Send extra data to Callback function in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/send-extra-data-to-callback-function/m-p/487209#M45311</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I�??m calling &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;selectFeatures(query,selectionMethod?,callback?,errback?)&lt;/SPAN&gt;&lt;SPAN&gt; method in a loop and I need to know the feature layer of each result. I call the same callback function for each call inside the loop.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I tried several ways but neither worked.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Followed this link as well: &lt;/SPAN&gt;&lt;A href="http://directwebremoting.org/dwr/documentation/browser/extra-data.html"&gt;http://directwebremoting.org/dwr/documentation/browser/extra-data.html&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What I want to do is to list the number of features returned from each feature server.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Please help�?�&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 14 Oct 2013 10:05:36 GMT</pubDate>
    <dc:creator>Nadeera_RukshanMemmenda_Arachc</dc:creator>
    <dc:date>2013-10-14T10:05:36Z</dc:date>
    <item>
      <title>Send extra data to Callback function</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/send-extra-data-to-callback-function/m-p/487209#M45311</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I�??m calling &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;selectFeatures(query,selectionMethod?,callback?,errback?)&lt;/SPAN&gt;&lt;SPAN&gt; method in a loop and I need to know the feature layer of each result. I call the same callback function for each call inside the loop.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I tried several ways but neither worked.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Followed this link as well: &lt;/SPAN&gt;&lt;A href="http://directwebremoting.org/dwr/documentation/browser/extra-data.html"&gt;http://directwebremoting.org/dwr/documentation/browser/extra-data.html&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What I want to do is to list the number of features returned from each feature server.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Please help�?�&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Oct 2013 10:05:36 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/send-extra-data-to-callback-function/m-p/487209#M45311</guid>
      <dc:creator>Nadeera_RukshanMemmenda_Arachc</dc:creator>
      <dc:date>2013-10-14T10:05:36Z</dc:date>
    </item>
    <item>
      <title>Re: Send extra data to Callback function</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/send-extra-data-to-callback-function/m-p/487210#M45312</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;This is what you can do.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;OL&gt;&lt;BR /&gt;&lt;LI&gt;Define a object that contains the selected feature count for each feature layer. Remember to reset the object to empty object prior to each selection.&lt;/LI&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;var selectedFeatureCount = {};&lt;/PRE&gt;&lt;BR /&gt;&lt;LI&gt;Change your callback function to accept two parameters: the feature layer and the result returned from selectFeatures.&lt;/LI&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;function selectCallback(featureLayer, selectResult) {
&amp;nbsp;&amp;nbsp; selectedFeatureCount[featureLayer.id] = selectResult.features.length;
&amp;nbsp;&amp;nbsp; // process your select result
}&lt;/PRE&gt;&lt;BR /&gt;&lt;LI&gt;Change selectFeatures statement as below.&lt;/LI&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;featLayer.selectFeatures(query, selectionMethod, function(result) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; selectCallback(featLayer, result);
},errback?)&lt;/PRE&gt;&lt;BR /&gt;&lt;/OL&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 21:27:25 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/send-extra-data-to-callback-function/m-p/487210#M45312</guid>
      <dc:creator>JasonZou</dc:creator>
      <dc:date>2021-12-11T21:27:25Z</dc:date>
    </item>
    <item>
      <title>Re: Send extra data to Callback function</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/send-extra-data-to-callback-function/m-p/487211#M45313</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I tired this and this doesn't work. :mad:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;in the callback method when you try to get the feature server id, every time you get the id of the feature server you called last inside the loop. Strange, but not working.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Oct 2013 03:05:41 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/send-extra-data-to-callback-function/m-p/487211#M45313</guid>
      <dc:creator>Nadeera_RukshanMemmenda_Arachc</dc:creator>
      <dc:date>2013-10-15T03:05:41Z</dc:date>
    </item>
    <item>
      <title>Re: Send extra data to Callback function</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/send-extra-data-to-callback-function/m-p/487212#M45314</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Must be something wrong inside the loop. Please post the code containing the whole loop.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Oct 2013 12:51:49 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/send-extra-data-to-callback-function/m-p/487212#M45314</guid>
      <dc:creator>JasonZou</dc:creator>
      <dc:date>2013-10-15T12:51:49Z</dc:date>
    </item>
    <item>
      <title>Re: Send extra data to Callback function</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/send-extra-data-to-callback-function/m-p/487213#M45315</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Callback funtion:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;function selectFeatureCallBackFunc(featureServerCalls, features) {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddCallbackLayerDetails(featureServerCalls, features);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For loop:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;for (k = 0; k &amp;lt; mapServicesList.length; k++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureLayertoSelect = mapServicesList&lt;K&gt;;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureLayertoSelect.selectFeatures(query, esri.layers.FeatureLayer.SELECTION_NEW, function (result) { selectFeatureCallBackFunc(featureLayertoSelect, result) }, errback);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&lt;/K&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you debug the code and check the &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;featureServerCalls&lt;/SPAN&gt;&lt;SPAN&gt; value inside the callback function, it'll be same in each call back.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 21:27:28 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/send-extra-data-to-callback-function/m-p/487213#M45315</guid>
      <dc:creator>Nadeera_RukshanMemmenda_Arachc</dc:creator>
      <dc:date>2021-12-11T21:27:28Z</dc:date>
    </item>
    <item>
      <title>Re: Send extra data to Callback function</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/send-extra-data-to-callback-function/m-p/487214#M45316</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I see what's going on. Since selectFeatures is an asynchronous function, the loop won't stop to wait until selectFeatures is complete. It will end up with when the first selectFeatures callback is invoked, the loop already completes, and featureLayertoSelect value will be the last feature layer for all the callbacks. This is a typical trap for async programming.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Change:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;for (k = 0; k &amp;lt; mapServicesList.length; k++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureLayertoSelect = mapServicesList&lt;K&gt;;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; featureLayertoSelect.selectFeatures(query, esri.layers.FeatureLayer.SELECTION_NEW, function (result) { selectFeatureCallBackFunc(featureLayertoSelect, result) }, errback);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/K&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;dojo.array(mapServicesList, function(aFeatureLayer) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aFeatureLayer.selectFeatures(query, 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; esri.layers.FeatureLayer.SELECTION_NEW, 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; function (result) { selectFeatureCallBackFunc(aFeatureLayer, result); }, 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; errback
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );
}&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In the above code, aFeatureLayer is a function parameter which is local to each callback function for dojo.array, which in turn should differentiate from each other.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 21:27:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/send-extra-data-to-callback-function/m-p/487214#M45316</guid>
      <dc:creator>JasonZou</dc:creator>
      <dc:date>2021-12-11T21:27:30Z</dc:date>
    </item>
  </channel>
</rss>

