如何等待发货?
Posted
技术标签:
【中文标题】如何等待发货?【英文标题】:How to Wait for Dispatch? 【发布时间】:2016-06-18 18:38:30 【问题描述】:我正在使用带有 es6 的 react 和 Flux 实用程序。我希望SalesStore
在执行自己的调度之前等待SessionStore
完成。在SalesStore
我有以下内容,但调度不等待。有谁知道问题可能是什么?谢谢。
class SalesStore extends ReduceStore
getInitialState()
return ;
reduce(state, action)
switch(action.type)
case Constants.FETCH_SALES:
this.getDispatcher().waitFor([SessionStore.getDispatchToken()]);
return state;
case Constants.FETCH_SALES_SUCCESS:
this.getDispatcher().waitFor([SessionStore.getDispatchToken()]);
return action.payload;
case Constants.FETCH_SALES_FAILURE:
this.getDispatcher().waitFor([SessionStore.getDispatchToken()]);
return state;
default:
return state;
export default new SalesStore(AppDispatcher);
【问题讨论】:
【参考方案1】:reducer 必须是纯函数 所以你应该将异步调用转移到动作创建者
function getToken()
// Async call then
return
type:'GET_TOKEN_SUCCESS'
function getSales()
// async then
return
type:'GET_SALES_SUCCESS'
// main action will call `getToken` and `fetchSales` actions
function fetchSales(params)
return dispatch =>
dispatch(getToken()).then((res)=> dispatch(getSales())
要管理承诺,您可以使用middleware
【讨论】:
以上是关于如何等待发货?的主要内容,如果未能解决你的问题,请参考以下文章
NetSuite REST API - 如何更新销售订单与跟踪号一起发货