【发布时间】:2022-01-15 00:49:09
【问题描述】:
我正在 Redux 中编写一个异步 thunk 来获取 Reddit 帖子,然后映射返回的数组以获取每个帖子的 cmets 并将它们添加到新对象。
export const fetchPosts = createAsyncThunk("posts/fetchPosts", async ({ name, filter }) => {
const data = await Reddit.getPosts(name, filter).then(async (val) => {
const posts = await val.map(async (post) => {
const comments = await Reddit.getComments(post.subreddit, post.id).then(val => {
return val;
});
return { ...post, comments: comments };
});
return posts;
});
return data;
});
但是,当在我的应用程序中运行 thunk 时,会发生错误,因为返回的 data 对象中的承诺仍处于未决状态。我该如何纠正这个问题?
【问题讨论】:
-
试试 Promise.all
-
如果 Reddit.getComments 有某种形式的使用限制,您可能会发现 promise.all 可能会被阻止,如果是这样,您可能想改用
for of。 -
@KrzysztofKrzeszewski 这似乎奏效了。谢谢!
标签: javascript redux react-redux