Dva三種方式實現dispatch的Promise回調

Dva2.0及以上版本

  • 使用官方自帶的Promise

// 業務組件 e.g: Tags.js
dispatch({
  type: 'user/add',
  payload: {}, // 須要傳遞的信息
})
 .then(result => {
   console.log('Tags result', result);  
 })

// model層 e.g: user.js
*add({ payload }, { call, put }){
    const response = yield(addTags, payload);
    const { code, msg } = response;
    if(code === 200) {
        //接口調用成功
        // do something...
        return true;    //  經過return給dispatch返回回調結果!
    }else {
        //接口調用失敗
        // do something...
        return false;
    }
}

此時業務組件的dispatch會接收modeladd返回的值。能夠利用data作一些邏輯判斷git

感興趣源碼能夠查看:
Dva2.0發佈日誌github

Dva2.0及如下版本

相關文章
相關標籤/搜索