吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 724|回复: 3
收起左侧

[求助] JS链式的问题

[复制链接]
cqwcns 发表于 2021-10-1 14:28
各位大佬,javascript这种语法叫什么名堂,链式赋值?链式调用?
如果有些值是需要用IF按需加上的,有没有办法分开写?
比如有时我根本不需要skip,有时不需要orderBy等等。

[JavaScript] 纯文本查看 复制代码
let get = await db.collection('satff').where({rogin: '茂名'}).skip(0).limit(100).orderBy('name', 'asc').get()


我尝试了以下两种方法都不行,必须一次性连起来写条件才能生效。

[JavaScript] 纯文本查看 复制代码
  let GET = db.collection(collection)

  if (doc) {
    GET.doc(doc)
  } else if (where) {
    GET.where(where)
}
  return GET.get()


[JavaScript] 纯文本查看 复制代码
 let GET = db.collection(collection)

if (doc) {
GET.doc=doc
} else if (where) {
GET.where=where
}
return GET.get()



不知道各位大佬有没有什么解决办法。谢谢额

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

SScrew 发表于 2021-10-1 15:49
本帖最后由 SScrew 于 2021-10-1 15:51 编辑

可以链式是因为方法返回了对象自身,尝试下方代码
[JavaScript] 纯文本查看 复制代码
let GET = db.collection(collection)
if (doc) GET = GET.doc(doc)
if (where) GET = GET.where(where)
return GET.get()

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
cqwcns + 1 + 1 热心回复!

查看全部评分

 楼主| cqwcns 发表于 2021-10-1 17:18
已解决,谢谢 @SScrew

[JavaScript] 纯文本查看 复制代码
// 查询
async function get(event) {

  // 获得数据
  const {
    collection,
    doc,
    where,
    fields,
    skip,
    limit,
    orderBy
  } = event

  // 声明语句
  let get = db.collection(collection)
  let total = 1

  // 判断doc还是where
  if (doc) {
    get = get.doc(doc)
  } else {
    get = get.where(where)
    // 查询数据总量(用于前端分页)
    const countResult = await get.count()
    total = countResult.total

    // 跳跃
    if (skip) get = get.skip(skip * limit)

    // 数量
    get.skip(limit || 100)

  }

  // 字段
  if (fields) get = get.field(fields)

  // 排序
  if (orderBy) {
    orderBy.forEach(element => {
      get = get.orderBy(element[0], element[1])
    });
  }

  res = await get.get()

  return {
    res,
    total
  }

}
Gaho2002 发表于 2021-10-1 18:03
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 22:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表