如何正确使用承诺返回的值并通过它映射

时间:2019-05-10 14:36:27

标签: arrays reactjs promise

所以我当前正在尝试返回从诺言中得到的值。返回的数据是一个数组,我需要遍历该数组才能从特定条件中获取正确的值。这是代码。

  const currency = await getCurrency().then(({ data }) => {

      data.map(({ default, code }) => {
        if (default){
        return code
      }
    })
  }
    return { pageProps, categories, currency };
  }

按照要求输入getCurrency代码

export const getCurrency = () => Moltin.Currencies.All();

大约98%的人确定我的问题来自语法! 感谢您的帮助

3 个答案:

答案 0 :(得分:1)

您的代码中存在一些问题

您不能使用default,因为它是javascript的保留关键字。
查看this答案以了解解决方法。

您可以的话

  data.map(({ default: dev, code }) => {
    if (dev){
    return code
  }
}) 

答案 1 :(得分:0)

如果getCurrency()返回一个promise,并且您正在使用await,则无需使用.then()。名为currency的变量将保存诺言返回的值。 .then()仅在不支持async / await语法的环境中使用。

答案 2 :(得分:0)

如果您必须在某些条件下获取某些值,我建议您使用过滤器而非地图。 map仅转换数据,而filter根据条件返回元素。

例如:

 const currency = await getCurrency().then(({ data }) => {

      data.filter(({ default, code }) => // some condition )
  }
    return { pageProps, categories, currency };
  }