jQuery 1.5
的变化
JS
异步和单线程的本质callback
这种形式使用jQuery deferred
function waitHanle() {
var dtd = $.Deferred(); //创建一个deferred对象
var wait = function (dtd) {
var task = function () {
console.log('执行完成');
dtd.resolve(); //表示异步任务已经完成
// dtd.reject(); //表示异步任务失败或出错
};
setTimeout(task, 1000);
return dtd;
};
//这里一定要有返回值
return wait(dtd);
}
dtd.promise
function waitHanle() {
var dtd = $.Deferred(); //创建一个deferred对象
var wait = function (dtd) {
var task = function () {
console.log('执行完成');
dtd.resolve(); //表示异步任务已经完成
};
setTimeout(task, 1000);
return dtd.promise();//这里返回的是promise,而不是直接返回deferred对象
};
//这里一定要有返回值
return wait(dtd);
}
var waithandle = waitHanle();
$.when(waitHanle)
.then(function () {
console.log('ok 1');
})
.then(function () {
console.log('ok 2');
});