node NPM库增强版globby Promise使用学习
作者:脉冲云_梁兴臣
NPM库
每天两分钟,了解一个流行NPM库。
昨天,我们学习了一个新库 glob,用于模式匹配目录文件。今天,我们要了解的globby,是基于 glob,并进一步得到了增强了功能。
globby 特性
相对于 glob,globby有以下增强功能
- Promise 接口
- 多模式匹配
- 否定模式匹配
- 扩展目录:
dir
→dir/**/*
- 支持
.gitignore
应用举例
(async () => { const paths = await globby(['images','photos'],{ expandDirectories: true }); console.log(paths); })();
gitignore:
const { gitignore } = require('globby'); (async () => { const isIgnored = await gitignore(); console.log(isIgnored('some/file')); })();
参考资料
glob: https://github.com/isaacs/nod...
globby: https://github.com/sindresorh...
q
我们了解了如何使用Promise管理异步任务,但是ES2015标准的Promise对象实现的接口非常有限,只含 Promise.all()
Promise.race()
promise.then()
promise.catch()
,这些接口在实际使用中是不够用的,比如我们没办法直接判断一个Promise对象是否已经完成。
q是一个Promise实现库,并且相对于ES2015标准,q提供了很多实用的工具函数。下面我们就列举一些非常有用的函数:
判断Promise状态
promise.isFulfilled()
promise.isRejected()
promise.isPending()
promise.finally(callback)
Promise最终完成后调用,无论是否失败,注意,ES2016 标准的Promise存在此函数,但是Edge等一些浏览器并未实现此函数。
promise.timeout(ms,message)
异步处理超时设置
promise.delay(ms)
延时执行
其他关于返回值的工具函数
比如 promise.get(propertyName)
的作用是获取Promise返回对象的某个属性,作用等同于:
promise.then(function (o) { return o[propertyName]; });
这种函数有很多,具体可以查看API文档。
参考资料
https://github.com/kriskowal/q
https://github.com/kriskowal/...
以上就是NPM库增强版globby Promise使用学习的详细内容,更多关于NPM库globby Promise的资料请关注脚本之家其它相关文章!