当前位置: 首页 > 知识库问答 >
问题:

javascript - 如何封装这个函数?

裴浩歌
2023-07-03

export function getMovies(data) {
  return async (dispatch, getState) => {
    dispatch({ type: "loading/turnOn" })
    let [err, response] = await to(api.getMovies(data))
    if (err) {
      dispatch({ type: "loading/turnOff" })
      return Promise.reject(err.message)
    }
    dispatch({ type: "loading/turnOff" })
    return Promise.resolve(response)
  }
}

这是我的actionCreator代码,crud所有的代码都一样,只需要改一个 “getMovies" 这个名字,所以我想要把这个函数封装一下,每次只需要传入一个函数名字就行了。求大佬给封装一下?? 感谢

共有3个答案

微生毅然
2023-07-03
export function createAction(fnName, apiFn) {
  return function(data) {
    return async (dispatch, getState) => {
      dispatch({ type: "loading/turnOn" })
      let [err, response] = await to(apiFn(data))
      if (err) {
        dispatch({ type: "loading/turnOff" })
        return Promise.reject(err.message)
      }
      dispatch({ type: "loading/turnOff" })
      return Promise.resolve(response)
    }
  }
}

export const getMovies = createAction('getMovies', api.getMovies)
export const createMovie = createAction('createMovie', api.createMovie)
export const updateMovie = createAction('updateMovie', api.updateMovie)
export const deleteMovie = createAction('deleteMovie', api.deleteMovie)
平学
2023-07-03
export function createAction(actionName) {
  return async (dispatch, getState) => {
    dispatch({ type: 'loading/turnOn' });
    const [err, response] = await to(api[actionName](data));
    dispatch({ type: 'loading/turnOff' });
    if (err) {
      return Promise.reject(err.message);
    }
    return Promise.resolve(response);
  }
}
梅跃
2023-07-03
export function createAction(actionName) {
  return async (dispatch, getState) => {
    dispatch({ type: "loading/turnOn" })
    let [err, response] = await to(api[actionName](data))
    if (err) {
      dispatch({ type: "loading/turnOff" })
      return Promise.reject(err.message)
    }
    dispatch({ type: "loading/turnOff" })
    return Promise.resolve(response)
  }
}
 类似资料:
  • 本文向大家介绍使用匿名函数的JavaScript封装,包括了使用匿名函数的JavaScript封装的使用技巧和注意事项,需要的朋友参考一下 面向对象的编程语言允许使用私有字段隐藏数据。他们使用这些来隐藏类的内部。在JS中,没有这样的构建支持来隐藏/封装内部工作。 我们有Anonymous函数,可以为您封装JS。让我们看一个例子- 示例 如果我们将上面的代码公开地写出来,则此代码将使用这些名称污染全

  • 我想封装一个通用的 get 函数: 其中 param 是必选的 url 参数,query 是可选的查询参数,data 指定 api 的返回类型,我希望能够这样使用 get 函数: 这是我现在写的: 现在可以在 param 为 never 时省略第二个参数,但是 param 不是 never 时省略第二个参数没有错误提示。我应该如何改进我的代码?

  • 问题内容: 摘要 您能解释JavaScript中封装的匿名函数的语法背后的原因吗?为什么起作用:但这不起作用? 我知道的 在JavaScript中,将创建一个命名函数,如下所示: 您还可以创建一个匿名函数并将其分配给变量: 您可以通过创建一个匿名函数来封装代码块,然后将其包装在方括号中并立即执行: 在创建模块化脚本时,这很有用,以避免因潜在冲突的变量而使当前范围或全局范围混乱(例如Greasemo

  • 本文向大家介绍自己封装的常用javascript函数分享,包括了自己封装的常用javascript函数分享的使用技巧和注意事项,需要的朋友参考一下 都是些常用的功能,这里就不多废话了,小伙伴们自己看下就明白了 奉上代码:

  • 本文向大家介绍自己封装的javascript事件队列函数版,包括了自己封装的javascript事件队列函数版的使用技巧和注意事项,需要的朋友参考一下 背景 javascript中使用addEventListener()或attachEvent()绑定事件时会有几个小问题: 一、使用addEventListener()或attachEvent()添加的匿名函数无法移除。 二、ie6-ie8中,使用