我什么时候应该使用 async/await 什么时候应该使用回调 [js]?

When should I be using async/await and when should I be using callbacks [js]?

我的 API 调用通常采用类似于此的回调模式进行格式化:

axios.get('http://localhost:8080/api/announcements')
  .then((res) => res)
  .catch((err) => err)

不过,我最近遇到了 async/await,下面的函数似乎做同样的事情,但更简洁。

const response = await axios.get('http://localhost:8080/api/announcements');
return response

什么时候应该使用回调模式,什么时候应该使用async/await?

它们只是两种不同语法中的同一件事,在它们之间进行选择只是个人喜好。对我来说,我总是选择 async/await 而不是 .then().catch() 因为:

  1. 更容易实现复杂的异步逻辑:有了.then(),剩下的程序,如果你想在任务完成后运行 , 必须位于 .then() 块中。如果你需要再次 return 一个 promise,你需要使用 chained .then()。对于更复杂的情况(解决之前的多个承诺、承诺循环等),解决方案变得更加难以实施。有多种情况我必须重写 async/await.
  2. 中的所有代码
  3. 熟悉的跨语言语法:使用async/await,代码就像任何普通代码一样编写。我可以轻松地使用循环、多重承诺和正常的 'return' 到 return 等待值。 .catch 通常不存在于其他语言中,而是一个 try catch 块,使使用其他语言的人更容易理解。