redux-saga学习笔记

2017-07-10  本文已影响187人  星月西

1.Generator函数

function* add(){
    let a=yield 1;
    console.log(a);
}

let res=add();
res.next();
res.next(1);
function* print(){
    yield 1;
    yield 2;
    yield 3;
    yield 4;
}

for(let i of print()){
    console.log(i);
}

2.Generator函数的异步应用

function* main() {
  var result = yield request("http://some.url");
  var resp = JSON.parse(result);
    console.log(resp.value);
}

function request(url) {
  makeAjaxCall(url, function(response){
    it.next(response);
  });
}

var it = main();
it.next();

3.redux-saga

4.发起action到store

创建一个Effect对象,来指示中间件我们需要发起一些action,然后让中间件执行真实的dispatch,可以测试其包含正确的指令

5.错误处理

可以直接使用try/catch语法,在saga函数中捕获错误

export function* getProduct(action){
    try{
        const products=yield call(Api.fetch,'/products');
        yield put({type: 'PRODUCT_SUCCESS', products});
    }
    catch(error){
        yield put({type: 'PRODUCT_FAILURE', error});
    }
}
上一篇 下一篇

猜你喜欢

热点阅读