来自Promise函数中单独文件的函数

时间:2019-09-09 06:43:35

标签: javascript reactjs promise

我正在尝试传递props并在.then()函数的promise内部调用单独文件中的函数。

例如,如果我要onSubmit

的身份致电handleSubmit
const handleSubmit = () => {
    setLoading(true);
    something
      .doSomething()
      .then(() => {
        SuccessBanner({ success: 'passwordReset' });
        setLoading(false);
      })
      .catch((error: any) => {
        ErrorBanner(error);
        setLoading(false);
      });
  };

,例如SuccessBanner被导入为

const SuccessBanner = (success: any) => { 
  const { toggleSuccessBanner } = useContext(GlobalContext);
  let successMessage: any;
  if (success === 'passwordReset') {
    successMessage = 'Password Reset Success Message';
  } else {
    successMessage = 'All other Success Messages';
  }
  toggleSuccessBanner(successMessage);
};

export default SuccessBanner;

首先,运行onSubmit函数.doSomething()。但是,then() SuccessBanner()内没有运行,但是,我可以在console之前添加SuccessBanner()消息,但是从不运行。

无法向console添加const SuccessBanner消息。

如何在SuccessBanner中运行handleSubmit

这可行,但是我想将函数分为两个常用文件。

const handleSubmit = () => {
setLoading(true);
something
  .doSomething()
  .then(() => {
    const { toggleSuccessBanner } = useContext(GlobalContext);  
    let successMessage: any;
    if (success === 'passwordReset') {
      successMessage = 'Password Reset Success Message';
    } else {
      successMessage = 'All other Success Messages';
    }
    toggleSuccessBanner(successMessage);
    setLoading(false);
  })
  .catch((error: any) => {
    ErrorBanner(error);
    setLoading(false);
  });

};

0 个答案:

没有答案