使用链式操作也没有问题 。

来源:4-14 jquery-deferred - 应用-3

慕无忌6890528

2019-05-24

// waitHandle 是进行了一个封装的功能 。

function waitHandle() {

 // 创建一个 deferred 对象 。

 // 初始化 $.deferred() 这么一个实例 。

var def = $.Deferred();

var wait2 = function(dtd) { // 要求传入一个 deferred 对象 。

var tast2 = function() {

console.log('jQuery Deferred 的使用: 执行完成 -- b1');

     // dtd.resolve() // 表示异步任务执行已经完成 。

dtd.reject() // 表示异步任务执行失败或出错 。

console.log('tast2 dtd (操作前) : ', dtd);

}

console.log('wait2 dtd (操作后): ', dtd)

setTimeout(tast2, 1100);

return dtd // 要求返回 deferred 对象 。

}

 // 注意: 这里一定要有返回值 。

return wait2(def)

}


// 还有 w.done   w.fail

var w = waitHandle();

w.then(function() {

console.log('成功 jQuery Deferred 的使用: 执行完成 -- b2')

}, function() {

console.log('失败 jQuery Deferred 的使用: 执行完成 -- b2')

}).then(function() {

console.log('成功 jQuery Deferred 的使用: 执行完成 -- b3')

}, function() {

console.log('失败 jQuery Deferred 的使用: 执行完成 -- b3')

}).then(function() {

console.log('成功 jQuery Deferred 的使用: 执行完成 -- b4')

}, function() {

console.log('失败 jQuery Deferred 的使用: 执行完成 -- b4')

})

这里链式执行打印的结果和老师说的方法结果一样, 我使用的 JQ 是 2.0.0.0 版本 。

打印结果为:

jQuery Deferred 的使用: 执行完成 -- b1

 失败 jQuery Deferred 的使用: 执行完成 -- b2

 失败 jQuery Deferred 的使用: 执行完成 -- b3

失败 jQuery Deferred 的使用: 执行完成 -- b4


写回答

1回答

双越

2019-05-24

  1. 建议把代码格式化一下,提问区的编辑器支持插入代码功能。

  2. 你具体遇到了什么问题,预期是怎样,结果又是怎样?

0
0

前端跳槽必备 一线互联网公司高级前端JavaScript面试

视频讲解前端面试中的JS高级知识点,扩展JS知识深度,从容面试

1621 学习 · 218 问题

查看课程