Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript cb&&';函数';==cb&&;cb(数据)与redux thunk一起工作(反应redux)?_Javascript_Reactjs_React Redux_Redux Thunk - Fatal编程技术网

Javascript cb&&';函数';==cb&&;cb(数据)与redux thunk一起工作(反应redux)?

Javascript cb&&';函数';==cb&&;cb(数据)与redux thunk一起工作(反应redux)?,javascript,reactjs,react-redux,redux-thunk,Javascript,Reactjs,React Redux,Redux Thunk,我创建了一个模拟承诺作为delay()来访问redux thunk 在动作部分,我无法理解cb&&&function'==typeof cb&&cb(data)以及它在redux thunk的动作中是如何工作的 class Actions { static start() { return { type: actionType.CREATE_TODO_DOING } } static ok(data, cb) {

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

在动作部分,我无法理解
cb&&&function'==typeof cb&&cb(data)
以及它在redux thunk的动作中是如何工作的

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
}

它只是一个回调函数,你想在
动作时调用它。好的
函数被调用了,就是它

谢谢,我知道cb&&“function”==typeof cb的意思,我仍然很困惑,我可以问一下为什么它会出现在操作中?它是如何工作的?假设您有一个操作调用
loginsucess
,并且在用户成功登录时调用此操作。然后,您希望触发一些(回调),例如重定向、显示消息信息。。。因此,您希望在调度操作
loginsucess
时调用此回调。回调是
操作中的
cb
函数。ok