【问题标题】:How to create a request via iteration in Javascript如何在 Javascript 中通过迭代创建请求
【发布时间】:2021-10-06 14:32:20
【问题描述】:

我正在构建一个附加了多个方法的请求。我想通过迭代枚举并构建请求来简化代码,但是当我尝试这样做时,我得到的结果与预期不同。

before 代码如下所示:

export const makeShelterRequest = (area: string) => {

const request = new Request().setArea(area);
request
  .getDogs()
  .set(
    StatusType.Adopted,
    setAnimalFilter1(),
  )
  .set(
    StatusType.Lost,
    setAnimalFilter2(),

  )
  .set(
    StatusType.Appointment,
    setAnimalFilter3(),

  )
  .set(
    StatusType.Processing,
    setAnimalFilter4(),
  ));

  return request;
};

我正在尝试像这样迭代:

  const request = new Request().setArea(area);
  const requestCounts = request.getDogsCount()
  const ENUM_OBJECT_KEYS = Object.keys(ENUM_OBJECT)

  ENUM_OBJECT_KEYS.forEach((key) => {
    requestCounts.set(
      key,
      ENUM_OBJECT[key as StatusType]))
    })
   return requestCounts

我的 ENUM_OBJECT 如下所示:

 export const ENUM_OBJECT: Partial<
  Record<StatusType, MyFilterTypes>
> = {
  [StatusType.Adopted]: setAnimalFilter1(),
  [StatusType.Lost]: setAnimalFilter2(),
  [StatusType.Appointment]: setAnimalFilter3(),
  [StatusType.Processing]: setAnimalFilter4(),
};

第一个返回一个实际的请求,第二个返回一个 Map。我不确定 ForEach 如何在迭代后返回请求。任何线索我在这里做错了什么?

【问题讨论】:

    标签: javascript typescript foreach enums request


    【解决方案1】:

    好吧,结果证明解决方案很愚蠢:

    在我尝试的迭代中,我返回了return requestCounts。将其更改为 return request 有效。

    【讨论】:

      猜你喜欢
      • 2012-06-02
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 2020-03-28
      • 1970-01-01
      • 2021-02-12
      • 2021-09-20
      相关资源
      最近更新 更多