为什么我要使用回调而不是等待?

问题描述 投票:0回答:1

我为一个项目编写了下面的代码,在该项目中我做了所有与用户相关的事情。这里我的服务文件中有一小部分代码。

let result: User | null = await userModel.registerUser();
return result;

作为我的小组的反馈,我收到:“使用回调而不是等待以获得更好的实践。”。这真的让我很困惑,因为为什么回调函数比简单地使用 wait 更好。一旦 userModel.registerUser() 给出响应,结果将返回到控制器,一切正常。 Await 占用的空间更少,可读性对我来说也好很多。

我已将代码更改为此(错误处理也是根据数据库的响应在 userMode.registerUser() 内完成的,因此是_):

userModel.registerUser(function(_, result) {
    return result;
});

这可行,但我不知道这有什么更好的地方。

javascript typescript async-await callback
1个回答
0
投票

我需要更多的背景信息才能给你一个明确的答案,告诉你哪个更好以及为什么。您提供的初始代码使用 async/await,这是一种更现代、更易读的方法来处理异步操作。但是,在某些情况下,可能会首选使用回调,具体取决于项目的上下文和具体要求。 以下是这两种方法的一些注意事项: 异步/等待:

可读性:异步/等待代码往往更具可读性并且类似于 同步代码,更容易理解。

错误处理:通过 async/await,您可以使用 try/catch 块 更好的错误处理,使其更容易处理 例外。
  • 回调:
兼容性:在某些场景或库中,回调可能是 处理异步操作的首选方式。

控制流程:回调可以提供对流程的更多控制 您的程序在某些情况下。
  • 就您而言,如果同事反馈建议使用回调,那么了解其背后的具体原因可能会有所帮助。回调在某些情况下可能是合适的,但使用
  • async/await 通常被认为是一种更现代、更易读的方法

如果您的 async/await 代码运行良好且易于理解,则可能没有强烈需要切换到回调。 还要注意,如果您的同事是遗留开发人员(例如一直在那里工作的老家伙),他们可能会认为应该使用回调,因为他们不知道更好或总是这样做,因为回调已经存在了一段时间了。这就是为什么我还建议

再次提出这个问题

,进行一场

关于哪个更好的辩论

,只要确保做一些研究,这样你就可以解释为什么 async/await 更好 - 这样你就可以帮助他们成为现代开发商!

© www.soinside.com 2019 - 2024. All rights reserved.