简介
Promise
是一种异步编程的解决方案。但是,在一些异步处理业务中,可能需要根据某些结果来继续处理其他任务,而 Promise
并不能很好地解决这个问题。promise-cascade
作为 Promise
的扩展,提供了更为灵活的 Promise
处理能力。
promise-cascade
会依次串联 Promise
对象,一个 Promise
对象的 resolve
可能会返回另一个需要执行的 Promise
,因此可以实现根据上一个 Promise
的结果来决定下一个 Promise
的执行。
安装
使用 npm
安装 promise-cascade
:
--- ------- --------------- ------
使用方法
基本用法
首先需要引入 PromiseCascade
:
------ -------------- ---- ------------------
接着创建需要串联执行的 Promise 对象数组:
----- ------------ - - --------------------- --------------------- -------------------- --
最后使用 PromiseCascade
对象进行串联执行:
----- -------------- - --- ----------------------------- -------------------------- -- - -------------------- -- ------- --- ---
高级用法
promise-cascade
提供了两个重要的回调函数:
beforeNext
:在执行下一个Promise
前会调用该函数,可以通过该函数去判断执行是否继续。afterNext
:在执行下一个Promise
后会调用该函数。
----- ------------ - - -- ----- -- -- ----- -------------- - --- ---------------------------- - ----------- -------- ------------- ------------ ----- -- - -------------------- -------------------------- ------------------------- -- ----- - - ------- ------- --------------- --- -- - ------- - -- ---------- -------- ------------- ------------ ----- -- - -------------------- -------------------------- ------------------------- -- ----- - - ------- --------- -- ------------- --- -- - ------------- - - --- -------------------------- -- - -------------------- ---
示例代码
------ -------------- ---- ------------------ -- ----- ------- -------- ----- ------------ - --------- ----- -- - ------ --- ----------------- ------- -- - ------------- -- - --------------------- ---------- -------------- -- --------- --- -- ----- ------------ - - -- -- ------------------ ----- ---- ------ -- - ------- --- ----- --- - ------ ----------------------- ---- ---- - ------ ------------------ ----- ---- -- ------ -- - ------- --- ----- --- - ------ ----------------------- ---- ---- - ------ ------------------ ----- ---- - -- ----- -------------- - --- ---------------------------- - ----------- -------- ------------- ------------ ----- -- - -------------------------- -------- ---------------------------- -------------- --------------------------- ------------- ------- -- ---------- -------- ------------- ------------ ----- -- - ------------------------- -------- ---------------------------- -------------- --------------------------- ------------- -- ------------- --- -- - ------------- - - --- -------------------------- -- - -------------------- -- ------- ---- - ---
注意事项
当串联的 Promise 不返回任何值时,需要使用 Promise.resolve(null)
替代原本的 Promise 对象。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60056f6781e8991b448e79ed