在我看来,"核心" node.js回调语法,即
function foo(data, callback) {
callback(false, data2);
}
除了之外,在语义上被事件取代
那么什么时候使用什么是一个好政策?
答案 0 :(得分:2)
一个好的策略是使用任何抽象最佳模型用例
我认为在这种情况下,表演不是问题。
如果要为执行异步调用的客户端提供函数,将其作为单个函数(如您的示例)公开似乎是完全有效的,并且看起来非常干净。 (这似乎是大多数node.js数据库客户端工作的方式。)
当你提到超过2-3时,回调很快就会失控。但是2-3回调函数会更好地建模为事件发射器吗?也许吧,这取决于你。
IMO 2-3 +回调肯定会更好地使用promises建模,因为调用结构会更平坦。
IMO事件发射器通常用于较长时间的物体。对于一个更长的"持续时间。您希望在一段时间内创建对象并订阅事件的位置,这似乎是一个完全不同的用例,而不是暴露回调的单个异步函数。
另一个选择是将客户端建模为流。
我认为一个好的经验法则是查看节点标准库(和流行节点库)将事件发射器应用于客户端的位置,以及它向客户端提供基于回调的api的位置。
节点将其tcp客户端/服务器建模为事件发射器