小编ahs*_*aus的帖子

佐贺县的“全部屈服”不是在等待所有效果完成

我有一个像这样的佐贺(一些伪鳕鱼)。

Saga1调用一个API。根据结果​​,我需要调用另外两个API。如果所有API均成功,则我调用onSuccess,否则调用onFailure。

该代码似乎可以正常工作,但效果不尽如人意。我面临的问题yield all是,一旦调用了第一笔收益,它就认为saga2和saga3已完成(请参阅saga2 / 3中的评论)。它并没有等待提取结果完成。

我认为部分原因是由于我误解了“完全效果”的含义。但是除此之外,我希望让所有人都等到一切完成。我希望saga2 / 3中的fetch引发的任何异常都可以被saga1中的catch捕获。

saga1(action) {

    const { onSuccess, onFailure } = action.payload;

    try {
        yield fetch...

        if(response.some_condition) yield all([
            put(saga2()),
            put(saga3())
        ])

        onSuccess();

    }
    catch(e) {
        onFailure();
    }
}

saga2(action) {

    yield put(someaction()) // This yields
    yield fetch...
}

saga3(action) {

    yield put(someaction()) // This yield
    yield fetch...
}
Run Code Online (Sandbox Code Playgroud)

下面的这段代码与我下面关于捕获不起作用的评论有关

action1 () { // action2 is same
    try {
        yield fetch();
        yield put(FINISHED_1);
    }
    catch(e) {
        throw (e);
    }
}

saga1() { …
Run Code Online (Sandbox Code Playgroud)

reactjs redux redux-saga

4
推荐指数
1
解决办法
1836
查看次数

Lodash fp(函数式编程)减少了不按我期望的方式工作

使用没有 fp 的普通 lodash,你会做类似的事情

chain(array).map(..).reduce(...).value()
Run Code Online (Sandbox Code Playgroud)

有了 fp,你就可以了

compose(reduce(...), map(...))(array)
Run Code Online (Sandbox Code Playgroud)

我可以让它适用于许多方法(展平、排序、映射),但reduce 除外。

你会期望它(lodash/fp/reduce)像这样工作

reduce((a,b)=>a+b, 0)([1,2,3])
Run Code Online (Sandbox Code Playgroud)

但 fp 版本仍然需要 3 个参数,这对我来说没有意义。所有其他功能对我来说都是这样工作的,除了减少

func(...)(array)
Run Code Online (Sandbox Code Playgroud)

如何使 fpreduce 像其他 fp 函数一样工作:

compose(reduce(...), map(...), flatten(...))(array)
Run Code Online (Sandbox Code Playgroud)

javascript functional-programming lodash

3
推荐指数
1
解决办法
4034
查看次数

CommonChunkPlugin不是构造函数

出于某种奇怪的原因获取此错误

TypeError:webpack.CommonsChunkPlugin不是构造函数

其他插件对我来说很好:

    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoErrorsPlugin(),
    // create global variables accessible on server and client
    new webpack.DefinePlugin({
Run Code Online (Sandbox Code Playgroud)

reactjs webpack babeljs

1
推荐指数
1
解决办法
2109
查看次数