我为一个项目编写了下面的代码,在该项目中我做了所有与用户相关的事情。这里我的服务文件中有一小部分代码。
let result: User | null = await userModel.registerUser();
return result;
作为我的小组的反馈,我收到:“使用回调而不是等待以获得更好的实践。”。这真的让我很困惑,因为为什么回调函数比简单地使用 wait 更好。一旦 userModel.registerUser() 给出响应,结果将返回到控制器,一切正常。 Await 占用的空间更少,可读性对我来说也好很多。
我已将代码更改为此(错误处理也是根据数据库的响应在 userMode.registerUser() 内完成的,因此是_):
userModel.registerUser(function(_, result) {
return result;
});
这可行,但我不知道这有什么更好的地方。
我需要更多的背景信息才能给你一个明确的答案,告诉你哪个更好以及为什么。您提供的初始代码使用 async/await,这是一种更现代、更易读的方法来处理异步操作。但是,在某些情况下,可能会首选使用回调,具体取决于项目的上下文和具体要求。 以下是这两种方法的一些注意事项: 异步/等待:
可读性:异步/等待代码往往更具可读性并且类似于 同步代码,更容易理解。
如果您的 async/await 代码运行良好且易于理解,则可能没有强烈需要切换到回调。 还要注意,如果您的同事是遗留开发人员(例如一直在那里工作的老家伙),他们可能会认为应该使用回调,因为他们不知道更好或总是这样做,因为回调已经存在了一段时间了。这就是为什么我还建议
再次提出这个问题,进行一场
关于哪个更好的辩论,只要确保做一些研究,这样你就可以解释为什么 async/await 更好 - 这样你就可以帮助他们成为现代开发商!