介绍
underscore.deferred 是一个基于 Underscore.js 的 JavaScript 库,它提供了一种方便的异步编程方式。它通过将回调函数的嵌套层级降至最低,使得代码更易读、易维护。
安装
可以使用 npm 安装 underscore.deferred:
--- ------- ------------------- ------
使用
创建 Deferred 对象
使用 _.Deferred()
方法可以创建一个 Deferred 对象:
--- -------- - -------------
这个 Deferred 对象是一个可链式调用的对象,支持 promise API。
定义回调函数
Deferred 对象提供了以下三个方法来定义回调函数:
deferred.done(callback)
:当 Deferred 对象成功时执行的回调函数;deferred.fail(callback)
:当 Deferred 对象失败时执行的回调函数;deferred.always(callback)
:无论 Deferred 对象成功还是失败都会执行的回调函数。
------------------------------ - --------------------- -------- ---- ------- -- -------- ----------------------- - ----------------------- -------- ---- ------ -- ------- -------------------- - --------------------- ------------ ---
执行回调函数
执行回调函数的方法有两种:
deferred.resolve([args])
:执行成功的回调函数;deferred.reject([args])
:执行失败的回调函数。
---------------------------- -- ----------- -------- ---- ------- ------- -- ----------- --------- ------------------------- -- ----------- -------- ---- ------ ----- -- ----------- ---------
链式调用
Deferred 对象可以链式调用,通过返回一个新的 Deferred 对象来实现:
--- --------- - ------------- --- --------- - ------------- ------------------------- - ------------------ -------- ----------- -------------------- --- ------------------------- - ------------------- -------- ----------- --- -------------------- -- -------- -------- -------- -- --------- -------- --------
延迟执行
使用 _.delay()
方法可以延迟执行回调函数:
--- -------- - ------------- ------------------ - ---------------------------- -- ------ ------------------------------ - --------------------- -------- ---- ------- -- -------- ---
处理多个 Deferred 对象
使用 _.when()
方法可以处理多个 Deferred 对象:
--- --------- - ------------- --- --------- - ------------- ----------------- --------------------------------- -------- - ---------------- --------- -------- ---- -------- -- -------- --------- --- ------------------------- ------------------------- -- ------ --------- -------- ---- -------- --- ---
总结
underscore.deferred 是一个非常实用的 JavaScript 库,它提供了一种方便的异步编程方式。通过学习 underscore.deferred 的使用方法,我们可以写出更易读、易维护的 JavaScript 代码。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/47277