<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文件,在浏览器中运行,在控制台中查看输出的文字,就可以更好的理解延时函数的执行情况。