1. 程式人生 > >redux-saga generator巢狀執行的阻塞與非阻塞

redux-saga generator巢狀執行的阻塞與非阻塞

1.generator呼叫generator

one中yield另一個generatoranother

function*another(params){
    // ...
}

function*one(params,{ call, put }){
    // ...
    yield another(params)
    // ...
}

1.yield後面接 generator(),帶括號

2.可以傳入引數,another也能接收到

3.another的執行是會中斷one的執行的,也就是說,
one會得到another執行完了之後才繼續往後執行

另外

yield another(params)
yield call(another,params)  

這兩種寫法是等價的,
call的作用就是把函式和引數並列排列

2. generator中put另一個action

function*one(params,{ call, put }){
    // ...
    yield put({ type: 'another' })
    // ...
}

這樣one是不會等待的another的,
直接就往後走了