jQuery的延迟对象使用详细的解决方案。

jQuery的延迟对象使用详细的解决方案。
以前看别人的演示,发现代码执行时的延迟对象是解决有时写在deferred.then方法,有时写在deferred.done方法。
这使我对延迟对象的半知识感到困惑。经过研究一段时间后,我发现,在某些情况下,这两种方法确实能达到同样的效果。

这个特殊的环境是什么
看deferred.done首先使用。
创建一个延迟对象
var(=);

解决/推迟对象
Dtd.resolve('finish);
调用已完成的方法
Dtd.done(donecallback donecallback {,})
当延迟对象解决 / donecallback,执行功能
作为参数函数,多个函数或数组
返回延迟或允诺对象原始

再看看deferred.then的用途和特点:
创建一个延迟对象
var(=);

解决/推迟对象
Dtd.resolve('finish);

调用方法
Deferred.then(donefilter {,} } { failfilter,progressfilter } }
方法:
当延迟对象解决 / donefilter,执行功能
当延迟对象拒绝/ failfilter,执行功能
当dederred对象进步/ progressfilter,执行功能
返回值:1,返回到延迟承诺对象,承诺可以修改传递的值(原始解析、拒绝返回a、修改a到b、承诺返回b、完成或未能返回到b的返回值);
返回值:2,在随后的方法中创建一个新的延迟对象并返回它的承诺
允诺对象可以将延迟链接返回到其他对象,如完成、失败等。
方法,异步执行(一个接一个)
此方法可以过滤延迟的/修改的状态方法,延迟对象承诺的返回值。
根据上述两种方法的特点,发现:

无论是deferred.then和deferred.done方法可以直接带参数的函数,与第一个参数的函数被称为递延对象时解决。

虽然该方法可以改变返回值,但在不考虑返回值和仅有一个参数函数的情况下,两种方法都能达到相同的效果。

相比之下,完成的方法更纯粹。这种方法比较复杂,但不能完全代替已完成的方法。最好使用当时的方法。

附加到延迟对象的其他方法:
创建对象var(延迟);

无功状态= dtd.state();
返回对象延迟、挂起/解析/拒绝的当前状态。
不接受任何参数

deferred.always(alwayscallback alwayscallback {,});
当延迟对象被解决或拒绝时,该方法的所有执行
参数可以是数组的函数,也可以是数组的函数。

Dtd.promise({是});
目的:防止其他代码干扰其内部状态和进程
返回一个包含方法的新允诺对象可以执行(完成、失败、然后一直、进度、状态、承诺),
/ /方法包含修改的延迟状态(解决,拒绝通知,resolvewith,就拒绝、敷衍,nodifywith)
/ /需要返回延迟对象,返回deferred.promise()

Dtd.resolve({和})
解决 / /延迟对象,调用所有的donecallback功能
/ / donecallback通过方法的第一个参数设置,但也dtd.done(donecallback)增加
/ /参数将被传递到donecallback参数可选。
在调用方法之前,只有延迟对象的创建者
donecallback这 / /延期或承诺的对象
/ / donecallback只接收一个参数

Dtd.resolveWith(上下文{一},)
解决 / /延迟对象,调用所有的donecallback功能
/ /参数:第一个参数是该对象的背景下,donecallback这将被修改;第二个参数是一个数组
在这 / / donecallback调用上下文的resolvewith方法
接收donecallback / 参数数量/长度的数组的第二参数
/ /差的解决方法是donecallback将改变这一点的功能

Dtd.reject({和})
/ /延迟对象,调用所有的failcallback功能
/ / failcallback可以在第二参数的方法,但也dtd.fail(failcallback)增加
/ /参数将被传递到failcallback参数可选。
在调用方法之前,只有延迟对象的创建者
failcallback这 / /延期或承诺的对象
/ / failcallback只接收一个参数

Dtd.rejectWith(上下文,{一})
解决 / /延迟对象,调用所有的failcallback功能
/ /参数:第一个参数是该对象的背景下,failcallback这将被修改;第二个参数是一个数组
在这 / / failcallback调用上下文就拒绝、敷衍的方法
接收failcallback / 参数数量/长度的数组的第二参数
/ /差的解决方法是failcallback将改变这一点的功能

Dtd.notify ({args})
/ /递延,调用所有的progresscallback功能
/ / progresscallback通过方法的第三个参数,也可由deferred.progress(progresscallback)增加
这种方法通常只能通过deferred.promise创始人 / /或延迟对象调用该方法,然后过滤
无法写入参数。如果您有参数,则建议可以返回字符串的字符串或函数。
当解决或拒绝 / /递延进入状态,然后打电话通知的方法,progresscallback将不再执行

Dtd.notifyWith(上下文,{一})
/ /递延,调用所有的progresscallback功能
/ /参数:第一个参数是该对象的背景下,progresscallback这将被修改;第二个参数是一个数组
在这 / / progresscallback调用上下文就拒绝、敷衍的方法
接收progresscallback / 参数数量/长度的数组的第二参数
/ /差的解决方法是progresscallback将改变这一点的功能
当解决或拒绝 / /递延进入状态,然后调用notifywith方法的progresscallback将不再执行
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部