README
woods-waterfall-promise
实例方法
方法名说明参数 select:挑取想要的字段;keys: string[] filter:对查询数据进行过滤; callback: (item: any) => boolean order: 对查询数据进行排序; options: { orderType: -1 | 1 (1升序、-1降序); orderField: string (用于排序对字段名) } offset: 偏移量; ofs: number limit: 截取前几条数据; lmt: number
使用
const arr = [
{ name: '物理学', id: 7, description: null, price: 33.99 },
{ name: '传统艺术', id: 8, description: null, price: 77.00 },
{ name: '解剖学', id: 14, description: null, price: 45.66 },
{ name: '解剖学', id: 15, description: null, price: 56.77 },
]
async function run() {
const result = await new WaterFall((resolve, reject) => {
resolve(arr)
})
// .filter(it => it.id > 10)
// .exactly({name: "解剖学", id: 15})
.order({ orderType: -1, orderField: "price" })
// .offset(2)
.limit(3)
// .select(["name", "id"])
console.log("result:", result)
}
run();
内部用于注册的静态方法:
方法名说明参数 registry用户可以根据自己需要,自定义注册自己的方法methodName: string, methodGenerator: (options: any) => (arr: Item[]) => Item[]
使用
const WaterFall = require("woods-waterfall-promise");
//注册
const exactlyGenerator = conditions => {
const conditionsKeys = Object.keys(conditions);
return function (arr) {
return arr.filter(it => {
return conditionsKeys.reduce((result, key) => {
return result && it[key] === conditions[key];
}, true)
})
}
}
WaterFall.registry('exactly', exactlyGenerator);
//使用
async function runExactly() {
const result = await new WaterFall((resolve, reject) => {
resolve(arr)
})
.exactly({name: "解剖学", id: 15})
.select(["name", "id"])
console.log("result:", result)
}
runExactly();