js之零碎工具(五)

一、获取防抖函数的返回值

js

/**
 * 创建一个防抖函数,该函数返回一个新的防抖版本的函数。
 * 为了获取函数的返回值
 * @returns {Function} 返回一个新的防抖函数。
 */
export function debounceReturnFn() {
  let timer: any = null
  /**
   * 新的防抖函数,接收一个函数、等待时间和任意参数,返回一个Promise。
   * @param {Function} fn 需要防抖的函数
   * @param {number} wait 防抖的等待时间
   * @param {...any} args 传递给函数的参数
   * @returns {Promise} 返回一个Promise,该Promise在指定时间后执行或者在出错时拒绝。
   */
  const newDebounce = function(fn: any, wait: number, ...args: any) {
    return new Promise((resolve, reject) => {
      if (timer !== null) {
        clearTimeout(timer)
      }
      timer = setTimeout((_: any) => {
        try {
          resolve(fn(...args))
        } catch (e) {
          reject(e)
        }
      }, wait)
    })
  }
  return newDebounce
}

html

import  { debounceReturnFn } from './common'

 private newDebounce: any = debounceReturnFn()

 private async searchActCharge(query: string) {
    this.activityInChargeList = await this.newDebounce(switchChargeList, 500, {
      type: 'activityInCharge',
      query,
    })
  }



/**
 * 返回 下拉列表信息
 * @param type
 * @param query
 * @returns
 */
export const switchChargeList = ({ type, query }: MisChargeType) => {
  switch (type) {
    case 'activityInCharge':
      if (query) {
        return searchMisHandle({ type, query })
      }
      return []
  }
}

/**
 * 调用  接口信息
 * @param type
 * @param query
 * @returns
 */
export const searchMisHandle = async ({ type, query }: { type: string; query: string }) => {
  switch (type) {
    case 'activityInCharge':
      var activityInChargeList: SearchMisType[] = []
      activityInChargeList = await apiGetByMisHandle(query)
      return activityInChargeList
  }
}

/**
 * 接口请求返回
 * @param query
 * @returns
 */
export async function apiGetByMisHandle(query: string) {
  const params = {
    mis: query,
  }
  const res = await net.activityRisk.apiGetByMis(params)
  if (res.data?.data) {
    const arr = []
    arr.push(res.data?.data)
    return arr
  }
  return []
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值