javascript - 在映射函数中的 .then 内部分配变量

标签 javascript promise svelte

我正在尝试在 .then 函数中分配一个变量,但我不知道如何在 svelte store 中执行此操作。我知道这是一个 promise ,需要一些时间来分配。

这是代码。

map 功能

data.products.data = data?.products?.data?.map((item) => {
                let category = '';
                customPIMListStore.getProductCategory(item.productCategoryId, token).then((data) => {
                    category = data;
                    console.log('category inside', category);
                });
                return {
                    ...item,
                    category
                };
            });

获取类别的另一个函数:

getProductCategory: async (id, token) => {
        const res = await api.get(`backoffice/v1/category/${id}`, token);
        return res?.category?.name;
    },

最佳答案

你将不得不等待它

data.products.data = await Promise.all(data?.products?.data?.map(async (item) => {
  const category = customPIMListStore.getProductCategory(item.productCategoryId, token)
  return {
    ...item,
    category
  };
}));

关于javascript - 在映射函数中的 .then 内部分配变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73333182/

相关文章:

angularjs - 使用 ES6 进行 AngularJS 的单元测试

svelte - 如何更改 Svelte Material UI (@SMUI) slider 标签中的背景?

javascript - 在 Svelte 中将对象作为 props 传递使得 HTML 中的对象字段不会改变?

javascript - JS Prototype 按类获取元素?

javascript - 如何使两个不同的图像大小相似而不失真?

javascript - 当你想要所有结果而不考虑任何拒绝时,使用什么而不是 Promise.all()

javascript - 通过 CSS 模块将 SCSS 变量导出到 JavaScript/Svelte,而不会出现 lint 警告

javascript - 如何使整个表格行可点击?

javascript - 递归 Javascript 数组

javascript - JavaScript 中的 Deferred、Promise 和 Future 有什么区别?