具有可观察价值的派遣行动

时间:2017-06-12 19:05:57

标签: rxjs ngrx

我经常发现自己使用以下代码:

    var base64String: String = ""
    do {
        let fileData = try NSData(contentsOfFile: fileLocation, options: NSData.ReadingOptions.mappedIfSafe)
        base64String = fileData.base64EncodedString(options: [])
    }
    catch {
        print(error)
    }

正如您所看到的,我需要将用户字符串存储为组件中的成员,以便将其与我的有效负载一起发送。

我宁愿使用用户字符串作为observable并使用异步管道。

在调度操作时如何更改我的代码以利用用户的observable而不将其存储在成员变量中?

1 个答案:

答案 0 :(得分:2)

您可以使用ngrx效果并使用当前用户增强LOGOUT命令。

@Effect() logoutEffect$ = this.actions$
  .ofType(LOGOUT)
  .withLatestFrom(this.store$)
  .map(([action: Action, storeState: AppState]) => {
     return storeState.getUser;
   })
  .map(payload => ({type: 'LOGOUT_USER', payload}))