首先给来一个简单的demo看看Promise是怎么使用的:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript">
var myPromise;
function my_load() {
return myPromise = new Promise(function(resolve, reject) {
//当异步代码执行成功时,我们才会调用resolve(...), 当异步代码失败时就会调用reject(...)
//在本例中,我们使用setTimeout(...)来模拟异步代码,实际编码时可能是XHR请求或是HTML5的一些API方法.
setTimeout(function() {
resolve("myPromise的resolve执行完毕!"); //代码正常执行!
}, 5000);
});
}
</script>
</head>
<body onload="my_load()">
<div、 style="color: red; height: 100px;width: 100px;" onclick="test_1(this)">
测试
</div>
<script>
function test_1(e) {
//当myPromise的resolve执行完毕以后下面才会执行
myPromise.then(function(resolve_finish) {
//resolve_finish随便命名,的值是上面调用resolve()方法传入的值.
alert(resolve_finish);
});
}
</script>
</body>
</html><!DOCTYPE ht