简介
suspend
是一个返回 Promise 的库,可以将异步函数转换成 suspended 填充函数。这使得异步代码的编写和测试变得更加直观,因为函数似乎是同步的。
这篇文章将介绍 suspend
的使用教程和示例代码,帮助大家以更加直观的方式编写异步代码。
安装
使用 npm
进行安装:
npm install suspend --save
对于浏览器端,可以使用 browserify
来转换包到一个单一文件。
使用方法
suspend
库提供了几个函数来帮助创建 suspended 填充函数。我们将使用以下函数:
suspend(function*)
:将一个普通的 generator 函数转换为 suspended 填充函数。resume()
:将挂起的函数恢复到它们上次停止的地方。
我们来看一个例子,使用 suspend
来防止回调地狱:
-- -------------------- ---- ------- --- ------- - ------------------- --------------------- -- - --- - --- ---- - ----- ------------ --- -------- - ----- -------------------- --- --------- - ----- ------------------------- ----------------------- - ----- --- - ----------------- - --- -- --------- ---- ------- -- ------------- --- -------------- --------- -------
上述代码中,我们使用 suspend
函数将整个函数转变为 suspended 填充函数。然后,使用 yield
关键字来暂停函数直到 Promise 在后台完成。如果 Promise 被 reject,将会在 catch()
块中抛出错误。
同样,我们需要使用 resume
函数来恢复挂起的函数。
var resume = suspend.resume(); fetchData().then(function (data) { resume(null, data); }, function (e) { resume(e); });
示例代码
下面是一个完整的示例代码,使用 suspend
来实现异步操作:
-- -------------------- ---- ------- --- -- - -------------- --- ------- - ------------------- --------------------- -- - --- - --- ---- - ----- ------------------------------- -------- ------------------ - ----- --- - ----------------- - --- -----------------
结论
suspend
可以帮助您以更加直观的方式编写异步代码。它将异步函数转换成 suspended 填充函数,使得函数看起来是同步的。在编写和测试异步代码方面,它是一种非常有用的工具。希望这篇文章对大家有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/40466