页面渲染需要的数据来源不同的接口,如何保证拿到数据的正确性?

Twisted
  • 360

react项目中,需要渲染一个组件,这个组件的数据可以来源A、B、C三个接口(在三个不同的函数中)。
这三个接口有可能并发,这种情况下,我应该怎么保证我取到的值是最后一个调用的接口的返回值?

目前实现:

const type = 'A'

function A() {
  type = 'A'
  fetch()
  .then(res => {
    setData('A', res)
  })
}

function B() {
  type = 'B'
  fetch()
  .then(res => {
    setData('B', res)
  })
}

function C() {
  type = 'C'
  fetch()
  .then(res => {
    setData('C', res)
  })
}

function setData(t, data) {
  if (t !== type) return
  this.setState({
    data
  })
}
回复
阅读 187
1 个回答

RxJS 可以很好的处理。

其他的方案就是你这种,记一下最后req的时间戳,然后闭包比较,戳相等才执行。

你知道吗?

宣传栏