2016-07-07 dojo.Deferred函數測試

<span style="font-size:18px;"><!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no"/>
    <title>Simple Map</title>
    <link rel="stylesheet" href="https://js.arcgis.com/3.17/esri/css/esri.css">
    <style>
      html, body, #map {
        height: 100%;
        margin: 0;
        padding: 0;
      }
    </style>
    <script src="https://js.arcgis.com/3.17/"></script>
    <script>
      
      // 創建延時執行函數
      var def = new dojo.Deferred();
      console.log("第一步");
      def.then(
        function(res){ 
          console.log("第四步");
        },
        function(err){       
          console.log("第四步"); 
        }
      );

      var map;
      require(["esri/map", "dojo/domReady!"], function(Map) {
        map = new Map("map", {
          basemap: "topo",  //For full list of pre-defined basemaps, navigate to http://arcg.is/1JVo6Wd
          center: [-122.45, 37.75], // longitude, latitude
          zoom: 13
        });
        console.log("第三步");
        def.resolve(1);
        console.log("第五步");
      });

       console.log("第二步");
   
              /*註釋部分是Dojo中文博客中的給出的示例代碼
              地址:dojo 1.6 官方教程:dojo.Deferred 初探
              http://blog.csdn.net/dojotoolkit/article/details/6304661
              */

              // var def = new dojo.Deferred(), userlist = dojo.byId("userlist"); 
              
              // def.then(
              //   function(res){ 
              //     // This will be called when the deferred 
              //     // is resolved 
              //     dojo.forEach(res, 
              //       function(user){ 
              //         dojo.create("li", { id: user.id, innerHTML: user.username + ": " + user.name }, userlist); 
              //       }); 
              //   },
              //   function(err){       
              //     // This will be called when the deferred 
              //     // is rejected 
              //     dojo.create("li", { innerHTML: "Error: " + err }, userlist); 
              //   }
              //   ); 

              // dojo.xhrGet({ 
              //   url: "users.json", 
              //   handleAs: "json", 
              //   load: function(res){ 
              //     // Resolve when content is received 
              //     def.resolve(res); }, 
              //   error: function(err){ 
              //     // Reject on error 
              //     def.reject(err); 
              //   } 
              // }); 

    </script>
  </head>

  <body>
    <div id="map"></div>
  </body>
</html></span>


將代碼直接保存爲html文件,在瀏覽器中運行,在控制檯中查看輸出的文字,就可以更好的理解延時函數的執行情況。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章