1.0.1 • Published 3 years ago

woods-waterfall-promise v1.0.1

Weekly downloads
8
License
ISC
Repository
-
Last release
3 years ago

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();