以下代码有效,但我正在寻找改进方法。我想确保通过使用promise可以正确处理API调用。

doSomething1(resp) {
  if (resp) {
    // Some code here
  } else {
    // Error handling
  }
}

doSomething2(resp) {
  // Some code here
}

fetchData() {
  apiFunctionOne(prop1, prop2)
    .then(resp => {
      this.doSomething1(resp);
      return resp;
    })
    .then(resp => {
      this.doSomething2(resp);
      return resp;
    })
    .then(resp => {
      this.doSomething3(resp);
    })
    .catch(this.errorHandling);
}

doSomething4(resp) {
  if (resp) {
    // Some code here
  } else {
    // Error handling
  }
}

doSomething3(resp) {
  apiFunctionTwo(prop1, prop2)
    .then(this.doSomething4)
    .then(() => {
      this.loading = false;
    })
    .catch(this.errorHandling);
}


最好将每个函数放在单独的then语句中或放在一个then语句中?
我的代码可以做些改进吗?

最佳答案

除非他们执行异步操作,否则您将返回新的承诺,否则只会使IMO的语法更加混乱:最好将所有同步代码放入自己的块中。

apiFunctionOne(prop1, prop2)
  .then(resp => {
  this.doSomething1(resp);
  this.doSomething2(resp);
  this.doSomething3(resp);
  return resp;
})

关于javascript - 我应该将单独的功能放入多个回调中吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49420404/

10-11 23:49