首页 > 解决方案 > 如何使用生成器函数作为事件侦听器内部的回调

问题描述

我有一个生成器函数来处理身份验证并将操作发送到 redux 存储。该功能需要在事件上执行。

我如何将其用作事件侦听器内部的回调?

这就是功能:

export function* authentication({ data }) {
  // Data structure {
  //   action: 'authentication',
  //   id: '7293847829109932,
  //   displayName: 'User Name',
  //   avatar: 'https://steamcommunity.com/images/user.png',
  //   access: 'access_token_string',
  //   refresh: 'refresh_token_string',
  // }

  // Will dispatch the success action if the data is correct

  if (data.action === 'error') {
    return yield put(signInFailure(data.message));
  }
  if (data.action === 'authentication') {
    localStorage.setItem('dualbits:access', data.access);
    localStorage.setItem('dualbits:refresh', data.refresh);
  }

  return yield put(signInSuccess(data));
}

事件监听器:

 window.addEventListener('message', authentication, false);

标签: javascriptasynchronouseventsfrontend

解决方案


推荐阅读