【问题标题】:Only need the Promise synchronicity return, not it's value when using '.then'只需要 Promise 同步返回,而不是使用 '.then' 时的值
【发布时间】:2019-05-23 02:30:14
【问题描述】:

我正在使用 axios 从我的 API 中获取一些数据,在解决第一个承诺后,我会执行另一个承诺。

我尝试了一些 确实 有效的方法,但它似乎不正确,问题是对于 firstResolvedPromise() 我不需要它的返回数据,我只需要 JavaScript等待它的决议然后执行另一个承诺,知道这一点,data => { } 是无用的代码,我怎样才能做得更好?省略数据

firstResolvedPromise()
  .then(data => {
    secondResolvedPromisse()
      .then(data => {
        this.setState({
          someState: data,
        })
      })
  })

【问题讨论】:

  • 我的问题不是关于如何同步 axios 调用,我已经做到了,问题是关于如何省略 data 参数,因为我没有使用它。
  • 当然,只需省略data 参数并仅使用()。但是把它拼出来也没有坏处。顺便说一句,如果您不需要调用中的任何数据,为什么还要让它们按顺序运行?
  • 因为这个函数会获取一个列表并将其缓存在某处,所以其他promise或其他组件会消耗这些列表项
  • @PedroVieira ,这听起来不像是好的程序设计。外部缓存的状态是不确定的,即使我们只是在几毫秒后讨论。您应该旨在将数据直接传递给.then() 回调,并根据需要将其传递给其他函数/API 调用。

标签: javascript reactjs promise axios


【解决方案1】:

你应该链接承诺:

firstResolvedPromise()
  .then(() => secondResolvedPromisse())
  .then(data => this.setState({
      someState: data,
   }))

【讨论】:

猜你喜欢
  • 2021-03-17
  • 1970-01-01
  • 2018-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-31
  • 2019-07-06
相关资源
最近更新 更多