gpt4 book ai didi

angular - 如何从ngrx效果多次调度相同的 Action

转载 作者:行者123 更新时间:2023-12-01 03:20:26 25 4
gpt4 key购买 nike

我想从我的效果中多次分派(dispatch)一个 Action ,为此我使用 concatMap ,但是当我发送相同的操作时,它会在下一次发送时被取消。有没有办法在之前的分派(dispatch)完成时分派(dispatch)一个 Action 。

下面的代码将有助于更好地理解问题。

@Effect()
setCategory$ = this.actions$
.ofType(GET_SESSION_AD_SUCCESS)
.concatMap((action: Action) => {

const category = action.payload;
const categoryPath = category.path;
const categoryDispatchArray = [];

categoryPath.forEach((path, index) => {
categoryDispatchArray.push({
type: GET_SUBCATEGORIES_BY_PARENT,
payload: { categoryId: path.id, index }
});
})

return dispatchArray;

}

最佳答案

我认为您的问题是 concatMapped Observable 在传递给它的最后一个 Observable 关闭时关闭。您需要的是mergeMap (又名 flatMap )在这里。

我也会使用 .map创建 dispatchArray:

@Effect()
setCategory$ = this.actions$
.ofType(GET_SESSION_AD_SUCCESS)
.mergeMap((action: Action) => {

const category = action.payload;
const categoryPath = category.path;

const categoryDispatchArray = categoryPath
.map((path, index) => ({
type: GET_SUBCATEGORIES_BY_PARENT,
payload: { categoryId: path.id, index }
});

return categoryDispatchArray;
}

关于angular - 如何从ngrx效果多次调度相同的 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45587533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com