Skip to content

Latest commit

 

History

History
47 lines (38 loc) · 1007 Bytes

README.md

File metadata and controls

47 lines (38 loc) · 1007 Bytes

redux-async-await

Build Status

redux middleware deal with es7 async/await syntax action and promise action

install

npm i -S redux-async-await

usage

// apply middleware
import {createStore, applyMiddleware} from 'redux';
import asyncAwait from 'redux-async-await';
const store = applyMiddleware(asyncAwait)(createStore)(yourRootReducer);

------------
// **actions.js**
// use async/await
export async function getInfo(id){
  const data = await fetch('/getUserInfo/' + id).then(res => res.json())
  return {
    type: 'GET_USERINFO',
    data
  }
}
// use Promise
export function getList(){
  return fetch('/getList').then(res => res.json()).then(data => ({
    type: 'GET_LIST',
    data
  }))
}

----------------
// dispatch
try{
  const data = await store.dispatch(getInfo(20)) // resolve, data === action.data
} catch(e) {
  console.log(e) // reject
}