cb && 'function' === typeof cb && cb(data) 如何在带有 redux-thunk 的 Action(React-redux) 中工作?

how does cb && 'function' === typeof cb && cb(data) work in the Action(React-redux) with redux-thunk?

我创建了一个模拟承诺作为 delay() 来访问 redux-thunk。

action部分没看懂cb && 'function' === typeof cb && cb(data) redux-thunk在action中是怎么工作的?

class Actions {
    static start() {
        return {
            type: actionType.CREATE_TODO_DOING
        }
    }

    static ok(data, cb) {
        cb && 'function' === typeof cb && cb(data);
        return {
            type: actionType.CREATE_TODO_SUCCESS,
            payload: data
        }
    }

    static fail(data, cb) {
        cb && 'function' === typeof cb && cb(data);
        return {
            type: actionType.CREATE_TODO_FAILURE,
            payload: data
        }
    }
}

export default (data, cb) => {
    return (dispatch, getState) => {
    dispatch(Actions.start());
        delay(0.5).then(() => {
            dispatch(Actions.ok(data, cb));
        }).catch(error => dispatch(Actions.fail(error || 'Create failed', cb)))
    }
}

这是这些的快捷方式

if (cb && 'function' === typeof cb) { // check cb has value + cb is a function or not
  cb(data); // call cb function
}

它只是一个回调函数,你想在调用 Actions.ok 函数时调用它,仅此而已