0

I am creating a map based on online datasets using the following code:

<script src="https://unpkg.com/[email protected]/dist/leaflet.js" integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==" crossorigin=""></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.1.0/chroma.min.js" integrity="sha512-yocoLferfPbcwpCMr8v/B0AB4SWpJlouBwgE0D3ZHaiP1nuu5djZclFEIj9znuqghaZ3tdCMRrreLoM8km+jIQ==" crossorigin="anonymous"></script>

<script>
const API_IRIS_CONTOUR = new Request("https://www.loicbertrand.eu/accidentologie/json/iris_75.json");
const API_INSEE_STAT = new Request("https://www.loicbertrand.eu/accidentologie/json/base-ic-logement-2020_paris.json");
var layer_iris = L.layerGroup()
var color_scale = chroma.scale(['yellow', 'red']);
const maxval = 400
var insee_value;    
const field = "P20_RP_VOIT1P"
const vniris = [751010101, 751010102, 751010103, 751010104, 751010105, 751010199, 751010201, 751010202, 751010203, 751010204, 751010205, 751010206, 751010301, 751010302, 751010303, 751010401, 751010402, 751020501, 751020502, 751020503, 751020601, 751020602, 751020701, 751020702, 751020703, 751020704, 751020801, 751020802, 751020803, 751020804, 751020805, 751030901, 751030902, 751030903, 751030904, 751030905, 751031001, 751031002, 751031003, 751031004, 751031101, 751031102, 751031103, 751031104, 751031201, 751031202, 751031203, 751031204, 751041301, 751041302, 751041303, 751041304, 751041305, 751041399, 751041401, 751041402, 751041403, 751041404, 751041499, 751041501, 751041502, 751041503, 751041504, 751041588, 751041599, 751041601, 751041602, 751041603, 751041699, 751051701, 751051702, 751051703, 751051704, 751051705, 751051706, 751051799, 751051801, 751051802, 751051803, 751051804, 751051805, 751051806, 751051807, 751051808, 751051809, 751051899, 751051901, 751051902, 751051903, 751051904, 751051905, 751051906, 751051907, 751051908, 751052001, 751052002, 751052003, 751052004, 751052005, 751052099, 751062101, 751062102, 751062103, 751062199, 751062201, 751062202, 751062203, 751062204, 751062205, 751062301, 751062302, 751062303, 751062304, 751062305, 751062306, 751062307, 751062308, 751062309, 751062310, 751062311, 751062401, 751062402, 751062499, 751072501, 751072502, 751072503, 751072504, 751072505, 751072506, 751072507, 751072508, 751072599, 751072601, 751072602, 751072603, 751072604, 751072605, 751072606, 751072699, 751072701, 751072702, 751072703, 751072704, 751072705, 751072706, 751072707, 751072801, 751072802, 751072803, 751072804, 751072805, 751072806, 751072807, 751072808, 751072809, 751072810, 751072811, 751072812, 751072899, 751082901, 751082902, 751082903, 751082904, 751082905, 751082906, 751082907, 751082999, 751083001, 751083002, 751083003, 751083004, 751083005, 751083006, 751083101, 751083102, 751083103, 751083104, 751083105, 751083106, 751083107, 751083108, 751083201, 751083202, 751083203, 751083204, 751083205, 751083206, 751083207, 751083208, 751083209, 751083210, 751093301, 751093302, 751093303, 751093304, 751093305, 751093306, 751093307, 751093308, 751093309, 751093310, 751093311, 751093401, 751093402, 751093403, 751093404, 751093405, 751093406, 751093407, 751093408, 751093409, 751093501, 751093502, 751093503, 751093504, 751093601, 751093602, 751093603, 751093604, 751093605, 751093606, 751093607, 751093608, 751093609, 751093610, 751103701, 751103702, 751103703, 751103704, 751103705, 751103706, 751103707, 751103708, 751103709, 751103710, 751103711, 751103712, 751103801, 751103802, 751103803, 751103804, 751103805, 751103806, 751103901, 751103902, 751103903, 751103904, 751103905, 751103906, 751103907, 751103908, 751103909, 751103910, 751103988, 751104001, 751104002, 751104003, 751104004, 751104005, 751104006, 751104007, 751104008, 751104009, 751104010, 751104011, 751104012, 751104088, 751114101, 751114102, 751114103, 751114104, 751114105, 751114106, 751114107, 751114108, 751114109, 751114110, 751114111, 751114112, 751114113, 751114114, 751114115, 751114201, 751114202, 751114203, 751114204, 751114205, 751114206, 751114207, 751114208, 751114209, 751114210, 751114211, 751114212, 751114213, 751114214, 751114301, 751114302, 751114303, 751114304, 751114305, 751114306, 751114307, 751114308, 751114309, 751114310, 751114311, 751114312, 751114313, 751114314, 751114315, 751114316, 751114317, 751114318, 751114319, 751114320, 751114321, 751114401, 751114402, 751114403, 751114404, 751114405, 751114406, 751114407, 751114408, 751114409, 751114410, 751114411, 751114412, 751114413, 751124501, 751124502, 751124503, 751124504, 751124505, 751124506, 751124507, 751124508, 751124509, 751124510, 751124511, 751124512, 751124513, 751124514, 751124577, 751124601, 751124602, 751124603, 751124604, 751124605, 751124606, 751124608, 751124609, 751124610, 751124611, 751124612, 751124613, 751124614, 751124615, 751124616, 751124617, 751124618, 751124619, 751124620, 751124621, 751124622, 751124623, 751124624, 751124677, 751124701, 751124702, 751124703, 751124704, 751124705, 751124706, 751124707, 751124708, 751124799, 751124801, 751124802, 751124803, 751124804, 751124805, 751124806, 751124807, 751124808, 751124809, 751124810, 751124811, 751124812, 751124813, 751124888, 751124899, 751134901, 751134902, 751134903, 751134904, 751134905, 751134906, 751134907, 751134908, 751134999, 751135001, 751135002, 751135003, 751135004, 751135005, 751135006, 751135007, 751135008, 751135009, 751135010, 751135011, 751135012, 751135013, 751135014, 751135015, 751135016, 751135017, 751135018, 751135019, 751135020, 751135021, 751135023, 751135024, 751135025, 751135026, 751135027, 751135028, 751135029, 751135030, 751135031, 751135032, 751135099, 751135101, 751135102, 751135103, 751135104, 751135105, 751135106, 751135107, 751135108, 751135109, 751135110, 751135111, 751135112, 751135113, 751135114, 751135115, 751135116, 751135117, 751135118, 751135119, 751135120, 751135121, 751135122, 751135123, 751135124, 751135125, 751135201, 751135202, 751135203, 751135204, 751135205, 751135206, 751135207, 751145301, 751145302, 751145303, 751145304, 751145305, 751145306, 751145307, 751145308, 751145309, 751145310, 751145311, 751145401, 751145402, 751145403, 751145404, 751145405, 751145406, 751145407, 751145501, 751145502, 751145503, 751145504, 751145505, 751145506, 751145507, 751145508, 751145509, 751145510, 751145511, 751145512, 751145513, 751145514, 751145515, 751145516, 751145601, 751145602, 751145603, 751145604, 751145605, 751145606, 751145607, 751145608, 751145609, 751145610, 751145611, 751145612, 751145613, 751145614, 751145615, 751145616, 751145617, 751145618, 751145619, 751145620, 751145621, 751145622, 751145623, 751145624, 751145625, 751155701, 751155702, 751155703, 751155704, 751155705, 751155706, 751155707, 751155708, 751155709, 751155710, 751155711, 751155712, 751155713, 751155714, 751155715, 751155716, 751155717, 751155718, 751155719, 751155720, 751155721, 751155722, 751155723, 751155724, 751155725, 751155726, 751155727, 751155728, 751155729, 751155730, 751155731, 751155732, 751155733, 751155801, 751155802, 751155803, 751155804, 751155805, 751155806, 751155807, 751155808, 751155809, 751155810, 751155811, 751155812, 751155813, 751155814, 751155815, 751155816, 751155817, 751155818, 751155819, 751155901, 751155902, 751155903, 751155904, 751155905, 751155906, 751155907, 751155908, 751155909, 751155910, 751155911, 751155912, 751155913, 751155914, 751155915, 751155916, 751155917, 751155918, 751155919, 751155920, 751155999, 751156001, 751156002, 751156003, 751156004, 751156005, 751156006, 751156007, 751156008, 751156009, 751156010, 751156012, 751156013, 751156014, 751156015, 751156016, 751156017, 751156018, 751156019, 751156020, 751156021, 751156022, 751156023, 751156099, 751166101, 751166102, 751166103, 751166104, 751166105, 751166106, 751166107, 751166108, 751166109, 751166110, 751166111, 751166112, 751166113, 751166114, 751166115, 751166116, 751166117, 751166118, 751166119, 751166120, 751166121, 751166122, 751166123, 751166124, 751166125, 751166126, 751166127, 751166128, 751166129, 751166130, 751166131, 751166177, 751166199, 751166201, 751166202, 751166203, 751166204, 751166205, 751166206, 751166207, 751166208, 751166209, 751166210, 751166211, 751166212, 751166213, 751166214, 751166215, 751166216, 751166217, 751166218, 751166219, 751166220, 751166221, 751166222, 751166223, 751166277, 751166299, 751166301, 751166302, 751166303, 751166304, 751166305, 751166306, 751166307, 751166308, 751166309, 751166310, 751166311, 751166377, 751166401, 751166402, 751166403, 751166404, 751166405, 751166406, 751166407, 751166409, 751166410, 751166411, 751166412, 751166413, 751166499, 751176501, 751176502, 751176503, 751176504, 751176505, 751176506, 751176507, 751176508, 751176509, 751176510, 751176511, 751176512, 751176513, 751176514, 751176515, 751176516, 751176601, 751176602, 751176603, 751176604, 751176605, 751176606, 751176607, 751176608, 751176609, 751176610, 751176611, 751176612, 751176613, 751176614, 751176615, 751176616, 751176701, 751176702, 751176703, 751176704, 751176705, 751176706, 751176707, 751176708, 751176709, 751176710, 751176711, 751176712, 751176713, 751176714, 751176715, 751176716, 751176801, 751176802, 751176803, 751176804, 751176805, 751176806, 751176807, 751176808, 751176809, 751176810, 751176811, 751176812, 751176813, 751176814, 751176815, 751176816, 751176817, 751186901, 751186902, 751186903, 751186904, 751186905, 751186906, 751186907, 751186908, 751186909, 751186910, 751186911, 751186912, 751186913, 751186914, 751186915, 751186916, 751186917, 751186918, 751186919, 751186920, 751186921, 751186922, 751186923, 751186924, 751186925, 751186926, 751186927, 751186928, 751186929, 751187001, 751187002, 751187003, 751187004, 751187005, 751187006, 751187007, 751187008, 751187009, 751187010, 751187011, 751187012, 751187013, 751187014, 751187015, 751187016, 751187017, 751187018, 751187019, 751187020, 751187021, 751187022, 751187023, 751187024, 751187025, 751187026, 751187027, 751187101, 751187102, 751187103, 751187104, 751187105, 751187106, 751187107, 751187108, 751187109, 751187110, 751187201, 751187202, 751187203, 751187204, 751187205, 751187206, 751187207, 751187208, 751187209, 751197301, 751197302, 751197303, 751197304, 751197305, 751197306, 751197307, 751197308, 751197309, 751197310, 751197311, 751197312, 751197313, 751197314, 751197315, 751197316, 751197317, 751197318, 751197388, 751197401, 751197402, 751197403, 751197404, 751197405, 751197406, 751197407, 751197408, 751197409, 751197410, 751197411, 751197412, 751197413, 751197488, 751197501, 751197502, 751197503, 751197504, 751197505, 751197506, 751197507, 751197508, 751197509, 751197510, 751197511, 751197512, 751197513, 751197514, 751197515, 751197516, 751197517, 751197518, 751197519, 751197520, 751197521, 751197522, 751197523, 751197524, 751197525, 751197601, 751197602, 751197603, 751197604, 751197605, 751197606, 751197607, 751197608, 751197609, 751197610, 751197611, 751197612, 751197613, 751197614, 751197615, 751197616, 751197617, 751207701, 751207702, 751207703, 751207704, 751207705, 751207706, 751207707, 751207708, 751207709, 751207710, 751207711, 751207712, 751207713, 751207714, 751207801, 751207802, 751207803, 751207804, 751207805, 751207806, 751207807, 751207808, 751207809, 751207810, 751207811, 751207812, 751207813, 751207814, 751207815, 751207816, 751207901, 751207902, 751207903, 751207904, 751207905, 751207906, 751207907, 751207908, 751207909, 751207910, 751207911, 751207912, 751207913, 751207914, 751207915, 751207916, 751207917, 751208001, 751208002, 751208003, 751208004, 751208005, 751208006, 751208007, 751208008, 751208009, 751208010, 751208011, 751208012, 751208013, 751208014, 751208015, 751208016, 751208017, 751208018, 751208019, 751208020, 751208021, 751208022, 751208023, 751208024, 751208025, 751208026]

vniris.forEach((niris) => {
    fetch(API_INSEE_STAT)
    .then(response => response.json())
    .then((data) => {
        data.forEach(function(item){
    if(item.IRIS == niris){
        //console.log(item[field])
        insee_value = item[field];
    }
        });
    })
    .catch(console.error)
    .then(() => {
        fetch(API_IRIS_CONTOUR)
        .then(response => response.json())
        .then(data => {
    //console.log("value now needed: " + insee_value)
    process_iris_contour(data, niris, color_scale(insee_value/maxval).hex())
        })
        .catch(console.error)
    });
});
</script>

Where the scripts used are:

function switch_coordinate_columns3D(arr) {
    var result = []
    result = structuredClone(arr);
    for (var i = 0; i < arr.length; i++) {
        for (var j = 0; j < arr[i].length; j++) {
            result[i][j][0] = arr[i][j][1];
            result[i][j][1] = arr[i][j][0];
        }
    }
    return result
}

function process_iris_contour(data, niris, color) {
    // polygon requires latlngs
    data.forEach(function(item){
       if(item.code_iris == niris){
            L.polygon(switch_coordinate_columns3D(item.geo_shape.geometry.coordinates), {stroke: false, fillColor: color}).addTo(layer_iris);
       }
    });
}

As vniris contains hundreds of values, the map requires very long time to complete, due to the multiple fetch statements.

How could I make this process faster?

Edits

  • Added full paths to json datasets
  • Added the reference to outer scripts
1
  • 1
    If they are all from the same JSON, why do you fetch them multiple times? Just fetch them one into a JSON object, and do multiple foreach calls on the object. Commented Nov 11, 2023 at 19:30

2 Answers 2

1

Just fetch the data once and save the result as a variable. The below may not be perfect since your code doesn't include some of the referenced functions, and there is no absolute path to the JSON data so I can't test it. But you should get the basic idea. See this question for more details

(async() => {
  const API_IRIS_CONTOUR = new Request("json/iris_75.json");
  const API_INSEE_STAT = new Request("json/base-ic-logement-2020_paris.json");

  const irisCountourResponse = await fetch(API_IRIS_CONTOUR);
  const inseeStatResponse = await fetch(API_INSEE_STAT);

  const irisCountourData = irisCountourResponse.json();
  const inseeStatData = inseeStatResponse.json();

  var layer_iris = L.layerGroup()
  var color_scale = chroma.scale(['yellow', 'red']);
  const maxval = 400
  var insee_value;    
  const field = "P20_RP_VOIT1P"
  const vniris = [751010101, 751010102, 751010103] //... trimmed for demo

  vniris.forEach((niris) => {
    inseeStatData.forEach(function(item){
      if(item.IRIS == niris){
          //console.log(item[field])
          insee_value = item[field];
      }
    });

    //console.log("value now needed: " + insee_value)
    process_iris_contour(irisCountourData, niris, color_scale(insee_value/maxval).hex())
  });
})();
Sign up to request clarification or add additional context in comments.

7 Comments

I have the following error: iris_paris_test2.html:117 Uncaught (in promise) TypeError: inseeStatData.forEach is not a function
I have added the requested information in my initial question
It looks as if InseeStatData is still a promise when being used with forEach(?)
I'm not sure. I am unable to test the code on stack overflow due to a CORS policy where I can't request the JSON data. My answer was mainly to demonstrate that you can just get the data once, save it, and then perform your loops instead of getting the exact same data hundreds of times in a loop
The code I have here takes away the asynchronous stuff. Those two await fetch calls means that the script will not continue until these promises resolve. Essentially you can treat those like regular variables that contain the data, even though they perform an async task. That should just work, and then you're back to simply doing loops or whatever you need to do with the data.
|
0

I could solve my issue by using the advice from @Tim Robert and combining it with a suggestion in the post How to return the Promise.all fetch api json data?

const API_IRIS_CONTOUR = new Request("json/iris_75.json");
const API_INSEE_STAT = new Request("json/base-ic-logement-2020_paris.json");
var layer_iris = L.layerGroup()
var color_scale = chroma.scale(['yellow', 'red']);
const maxval = 400
var insee_value
const field = "P20_RP_VOIT1P"
      
const vniris = [751010101, 751010102, 751010103, 751010104, 751010105, 751010199, 751010201, 751010202, 751010203, 751010204, 751010205, 751010206, 751010301, 751010302, 751010303, 751010401, 751010402, 751020501, 751020502, 751020503, 751020601, 751020602, 751020701, 751020702, 751020703, 751020704, 751020801, 751020802, 751020803, 751020804, 751020805, 751030901, 751030902, 751030903, 751030904, 751030905, 751031001, 751031002, 751031003, 751031004, 751031101, 751031102, 751031103, 751031104, 751031201, 751031202, 751031203, 751031204, 751041301, 751041302, 751041303, 751041304, 751041305, 751041399, 751041401, 751041402, 751041403, 751041404, 751041499, 751041501, 751041502, 751041503, 751041504, 751041588, 751041599, 751041601, 751041602, 751041603, 751041699, 751051701, 751051702, 751051703, 751051704, 751051705, 751051706, 751051799, 751051801, 751051802, 751051803, 751051804, 751051805, 751051806, 751051807, 751051808, 751051809, 751051899, 751051901, 751051902, 751051903, 751051904, 751051905, 751051906, 751051907, 751051908, 751052001, 751052002, 751052003, 751052004, 751052005, 751052099, 751062101, 751062102, 751062103, 751062199, 751062201, 751062202, 751062203, 751062204, 751062205, 751062301, 751062302, 751062303, 751062304, 751062305, 751062306, 751062307, 751062308, 751062309, 751062310, 751062311, 751062401, 751062402, 751062499, 751072501, 751072502, 751072503, 751072504, 751072505, 751072506, 751072507, 751072508, 751072599, 751072601, 751072602, 751072603, 751072604, 751072605, 751072606, 751072699, 751072701, 751072702, 751072703, 751072704, 751072705, 751072706, 751072707, 751072801, 751072802, 751072803, 751072804, 751072805, 751072806, 751072807, 751072808, 751072809, 751072810, 751072811, 751072812, 751072899, 751082901, 751082902, 751082903, 751082904, 751082905, 751082906, 751082907, 751082999, 751083001, 751083002, 751083003, 751083004, 751083005, 751083006, 751083101, 751083102, 751083103, 751083104, 751083105, 751083106, 751083107, 751083108, 751083201, 751083202, 751083203, 751083204, 751083205, 751083206, 751083207, 751083208, 751083209, 751083210, 751093301, 751093302, 751093303, 751093304, 751093305, 751093306, 751093307, 751093308, 751093309, 751093310, 751093311, 751093401, 751093402, 751093403, 751093404, 751093405, 751093406, 751093407, 751093408, 751093409, 751093501, 751093502, 751093503, 751093504, 751093601, 751093602, 751093603, 751093604, 751093605, 751093606, 751093607, 751093608, 751093609, 751093610, 751103701, 751103702, 751103703, 751103704, 751103705, 751103706, 751103707, 751103708, 751103709, 751103710, 751103711, 751103712, 751103801, 751103802, 751103803, 751103804, 751103805, 751103806, 751103901, 751103902, 751103903, 751103904, 751103905, 751103906, 751103907, 751103908, 751103909, 751103910, 751103988, 751104001, 751104002, 751104003, 751104004, 751104005, 751104006, 751104007, 751104008, 751104009, 751104010, 751104011, 751104012, 751104088, 751114101, 751114102, 751114103, 751114104, 751114105, 751114106, 751114107, 751114108, 751114109, 751114110, 751114111, 751114112, 751114113, 751114114, 751114115, 751114201, 751114202, 751114203, 751114204, 751114205, 751114206, 751114207, 751114208, 751114209, 751114210, 751114211, 751114212, 751114213, 751114214, 751114301, 751114302, 751114303, 751114304, 751114305, 751114306, 751114307, 751114308, 751114309, 751114310, 751114311, 751114312, 751114313, 751114314, 751114315, 751114316, 751114317, 751114318, 751114319, 751114320, 751114321, 751114401, 751114402, 751114403, 751114404, 751114405, 751114406, 751114407, 751114408, 751114409, 751114410, 751114411, 751114412, 751114413, 751124501, 751124502, 751124503, 751124504, 751124505, 751124506, 751124507, 751124508, 751124509, 751124510, 751124511, 751124512, 751124513, 751124514, 751124577, 751124601, 751124602, 751124603, 751124604, 751124605, 751124606, 751124608, 751124609, 751124610, 751124611, 751124612, 751124613, 751124614, 751124615, 751124616, 751124617, 751124618, 751124619, 751124620, 751124621, 751124622, 751124623, 751124624, 751124677, 751124701, 751124702, 751124703, 751124704, 751124705, 751124706, 751124707, 751124708, 751124799, 751124801, 751124802, 751124803, 751124804, 751124805, 751124806, 751124807, 751124808, 751124809, 751124810, 751124811, 751124812, 751124813, 751124888, 751124899, 751134901, 751134902, 751134903, 751134904, 751134905, 751134906, 751134907, 751134908, 751134999, 751135001, 751135002, 751135003, 751135004, 751135005, 751135006, 751135007, 751135008, 751135009, 751135010, 751135011, 751135012, 751135013, 751135014, 751135015, 751135016, 751135017, 751135018, 751135019, 751135020, 751135021, 751135023, 751135024, 751135025, 751135026, 751135027, 751135028, 751135029, 751135030, 751135031, 751135032, 751135099, 751135101, 751135102, 751135103, 751135104, 751135105, 751135106, 751135107, 751135108, 751135109, 751135110, 751135111, 751135112, 751135113, 751135114, 751135115, 751135116, 751135117, 751135118, 751135119, 751135120, 751135121, 751135122, 751135123, 751135124, 751135125, 751135201, 751135202, 751135203, 751135204, 751135205, 751135206, 751135207, 751145301, 751145302, 751145303, 751145304, 751145305, 751145306, 751145307, 751145308, 751145309, 751145310, 751145311, 751145401, 751145402, 751145403, 751145404, 751145405, 751145406, 751145407, 751145501, 751145502, 751145503, 751145504, 751145505, 751145506, 751145507, 751145508, 751145509, 751145510, 751145511, 751145512, 751145513, 751145514, 751145515, 751145516, 751145601, 751145602, 751145603, 751145604, 751145605, 751145606, 751145607, 751145608, 751145609, 751145610, 751145611, 751145612, 751145613, 751145614, 751145615, 751145616, 751145617, 751145618, 751145619, 751145620, 751145621, 751145622, 751145623, 751145624, 751145625, 751155701, 751155702, 751155703, 751155704, 751155705, 751155706, 751155707, 751155708, 751155709, 751155710, 751155711, 751155712, 751155713, 751155714, 751155715, 751155716, 751155717, 751155718, 751155719, 751155720, 751155721, 751155722, 751155723, 751155724, 751155725, 751155726, 751155727, 751155728, 751155729, 751155730, 751155731, 751155732, 751155733, 751155801, 751155802, 751155803, 751155804, 751155805, 751155806, 751155807, 751155808, 751155809, 751155810, 751155811, 751155812, 751155813, 751155814, 751155815, 751155816, 751155817, 751155818, 751155819, 751155901, 751155902, 751155903, 751155904, 751155905, 751155906, 751155907, 751155908, 751155909, 751155910, 751155911, 751155912, 751155913, 751155914, 751155915, 751155916, 751155917, 751155918, 751155919, 751155920, 751155999, 751156001, 751156002, 751156003, 751156004, 751156005, 751156006, 751156007, 751156008, 751156009, 751156010, 751156012, 751156013, 751156014, 751156015, 751156016, 751156017, 751156018, 751156019, 751156020, 751156021, 751156022, 751156023, 751156099, 751166101, 751166102, 751166103, 751166104, 751166105, 751166106, 751166107, 751166108, 751166109, 751166110, 751166111, 751166112, 751166113, 751166114, 751166115, 751166116, 751166117, 751166118, 751166119, 751166120, 751166121, 751166122, 751166123, 751166124, 751166125, 751166126, 751166127, 751166128, 751166129, 751166130, 751166131, 751166177, 751166199, 751166201, 751166202, 751166203, 751166204, 751166205, 751166206, 751166207, 751166208, 751166209, 751166210, 751166211, 751166212, 751166213, 751166214, 751166215, 751166216, 751166217, 751166218, 751166219, 751166220, 751166221, 751166222, 751166223, 751166277, 751166299, 751166301, 751166302, 751166303, 751166304, 751166305, 751166306, 751166307, 751166308, 751166309, 751166310, 751166311, 751166377, 751166401, 751166402, 751166403, 751166404, 751166405, 751166406, 751166407, 751166409, 751166410, 751166411, 751166412, 751166413, 751166499, 751176501, 751176502, 751176503, 751176504, 751176505, 751176506, 751176507, 751176508, 751176509, 751176510, 751176511, 751176512, 751176513, 751176514, 751176515, 751176516, 751176601, 751176602, 751176603, 751176604, 751176605, 751176606, 751176607, 751176608, 751176609, 751176610, 751176611, 751176612, 751176613, 751176614, 751176615, 751176616, 751176701, 751176702, 751176703, 751176704, 751176705, 751176706, 751176707, 751176708, 751176709, 751176710, 751176711, 751176712, 751176713, 751176714, 751176715, 751176716, 751176801, 751176802, 751176803, 751176804, 751176805, 751176806, 751176807, 751176808, 751176809, 751176810, 751176811, 751176812, 751176813, 751176814, 751176815, 751176816, 751176817, 751186901, 751186902, 751186903, 751186904, 751186905, 751186906, 751186907, 751186908, 751186909, 751186910, 751186911, 751186912, 751186913, 751186914, 751186915, 751186916, 751186917, 751186918, 751186919, 751186920, 751186921, 751186922, 751186923, 751186924, 751186925, 751186926, 751186927, 751186928, 751186929, 751187001, 751187002, 751187003, 751187004, 751187005, 751187006, 751187007, 751187008, 751187009, 751187010, 751187011, 751187012, 751187013, 751187014, 751187015, 751187016, 751187017, 751187018, 751187019, 751187020, 751187021, 751187022, 751187023, 751187024, 751187025, 751187026, 751187027, 751187101, 751187102, 751187103, 751187104, 751187105, 751187106, 751187107, 751187108, 751187109, 751187110, 751187201, 751187202, 751187203, 751187204, 751187205, 751187206, 751187207, 751187208, 751187209, 751197301, 751197302, 751197303, 751197304, 751197305, 751197306, 751197307, 751197308, 751197309, 751197310, 751197311, 751197312, 751197313, 751197314, 751197315, 751197316, 751197317, 751197318, 751197388, 751197401, 751197402, 751197403, 751197404, 751197405, 751197406, 751197407, 751197408, 751197409, 751197410, 751197411, 751197412, 751197413, 751197488, 751197501, 751197502, 751197503, 751197504, 751197505, 751197506, 751197507, 751197508, 751197509, 751197510, 751197511, 751197512, 751197513, 751197514, 751197515, 751197516, 751197517, 751197518, 751197519, 751197520, 751197521, 751197522, 751197523, 751197524, 751197525, 751197601, 751197602, 751197603, 751197604, 751197605, 751197606, 751197607, 751197608, 751197609, 751197610, 751197611, 751197612, 751197613, 751197614, 751197615, 751197616, 751197617, 751207701, 751207702, 751207703, 751207704, 751207705, 751207706, 751207707, 751207708, 751207709, 751207710, 751207711, 751207712, 751207713, 751207714, 751207801, 751207802, 751207803, 751207804, 751207805, 751207806, 751207807, 751207808, 751207809, 751207810, 751207811, 751207812, 751207813, 751207814, 751207815, 751207816, 751207901, 751207902, 751207903, 751207904, 751207905, 751207906, 751207907, 751207908, 751207909, 751207910, 751207911, 751207912, 751207913, 751207914, 751207915, 751207916, 751207917, 751208001, 751208002, 751208003, 751208004, 751208005, 751208006, 751208007, 751208008, 751208009, 751208010, 751208011, 751208012, 751208013, 751208014, 751208015, 751208016, 751208017, 751208018, 751208019, 751208020, 751208021, 751208022, 751208023, 751208024, 751208025, 751208026]


Promise.all([
    fetch(API_IRIS_CONTOUR).catch(err => {
        throw {url: API_IRIS_CONTOUR, err};
    }),
    fetch(API_INSEE_STAT).catch(err => {
        throw {url: API_INSEE_STAT, err};
    })
]).then(async([irisContourResponse, inseeStatResponse]) => {
    const irisContourData = await irisContourResponse.json();
    const inseeStatData = await inseeStatResponse.json();
    vniris.forEach((niris) => {
        inseeStatData.forEach(function(item){
    if(item.IRIS == niris){
        process_iris_contour(irisContourData, niris, color_scale(item[field] / maxval).hex())
    }
        });
    });
});

1 Comment

I believe this is for sure a huge improvement over what you had before. Now it only requests each JSON file once each, and then it does your local parsing of that data using the saved responses.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.