js笔记之Promise(四)
js笔记之Promise(四)
1 Promisification
Promisification 它指将一个接受回调的函数转换为一个返回 promise 的函数。由于许多的函数都是基于回调的,因此在实际的开发中经常会遇到这种转化。一个简单的例子:
1 | function loadScript(src, callback) { |
上面的例子 通过给定的src加载脚本,然后再出现错误是调用callback(err),或者在加载成功时,调用callback(null,script) 。
接下来我们将这个函数promise化。
我们要做的就是将这个函数返回一个promise,而不是使用回调。换句话就是我们只传入src, 然后再函数中return一个promise。加载成功时该 promise 将以 script
为结果 resolve,否则将以出现的 error 为结果 reject。
1 | function loadScriptPromise(src) { |
在实际开发中,我们可能需要 promise 化很多函数,所以使用一个 helper(辅助函数)很有意义。
我们将其称为 promisify(f)
:它接受一个需要被 promise 化的函数 f
,并返回一个包装(wrapper)函数。
1 | // promisify(f, true) 来获取结果数组 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 编程纪元!
评论
ValineGitalk