关于onLoad里运行for循环的一点疑问

这段代码

for(var i=0;i<24;i++)
      {
        
        if(i==5||i==18){
          
          cc.loader.loadRes("HoleofMouse",cc.Prefab,function(err,prefab){
            let HoleofMouse=cc.instantiate(prefab);                   
            chessboard.addChild(HoleofMouse);
            console.log("老鼠洞");
           // HoleofMouse.sprite_index=4;
          });
        }else if(i==23)
        {
         
          cc.loader.loadRes("DengYou",cc.Prefab,function(err,prefab){
         let DengYou=cc.instantiate(prefab);
          //  DengYou.active=true;      
          chessboard.addChild(DengYou);
          console.log("灯油");
           // DengYou.sprite_index=5;
          });
        }else{
          
          cc.loader.loadRes("NewButton",cc.Prefab,function(err,prefab){
            let buttonprefab=cc.instantiate(prefab);
          //  buttonprefab.active=true;      
            chessboard.addChild(buttonprefab);
            console.log("其他");
        });
      }                                   
      }
/*输出结果*/
其他 MapGenerator.js:54:19
其他 2 MapGenerator.js:54:19
其他 MapGenerator.js:54:19
其他 MapGenerator.js:54:19
其他 4 MapGenerator.js:54:19
其他 12 MapGenerator.js:54:19
老鼠洞 2 MapGenerator.js:35:19
灯油 MapGenerator.js:45:21

​


这段代码

for(var i=0;i<24;i++)
      {
        
        if(i==5||i==18){
          console.log("老鼠洞");
          cc.loader.loadRes("HoleofMouse",cc.Prefab,function(err,prefab){
            let HoleofMouse=cc.instantiate(prefab);                   
            chessboard.addChild(HoleofMouse);
            
           // HoleofMouse.sprite_index=4;//关键一招,但没用啊,后面脚本加载的时候默认为0
          });
        }else if(i==23)//灯油
        {
          console.log("灯油");
          cc.loader.loadRes("DengYou",cc.Prefab,function(err,prefab){
         let DengYou=cc.instantiate(prefab);
          //  DengYou.active=true;      //无需激活
          chessboard.addChild(DengYou);
          
           // DengYou.sprite_index=5;
          });
        }else{
          console.log("其他");
          cc.loader.loadRes("NewButton",cc.Prefab,function(err,prefab){
            let buttonprefab=cc.instantiate(prefab);
          //  buttonprefab.active=true;      //无需激活
            chessboard.addChild(buttonprefab);
            
        });
      }                                   
      }
/*输出结果*/
其他 4 MapGenerator.js:44:18
其他 MapGenerator.js:44:18
老鼠洞 MapGenerator.js:26:18
其他 12 MapGenerator.js:44:18
老鼠洞 MapGenerator.js:26:18
其他 MapGenerator.js:44:18
其他 3 MapGenerator.js:44:18
灯油 MapGenerator.js:35:18

分别位于不同的onLoad函数里,他们只是改变了console.log在for里的位置,但是竟然导致console.log输出的次序不同
这是为什么?

cc.loader.loadRes加载延迟

谢谢!

cc.loader.loadRes 异步加载,不一定哪个先加载完成。