Javascript 回调后代码的最佳实践
这就是我要做的 我目前正在使用node.js,它允许您做的一件事是:Javascript 回调后代码的最佳实践,javascript,node.js,callback,Javascript,Node.js,Callback,这就是我要做的 我目前正在使用node.js,它允许您做的一件事是: socket.on("sometopic", function() { // this is a callback } 现在让我们假设我有10个不同的主题,每个主题都有一个对应的处理函数,我保存在我的窗口中,例如: windows.callbacks["topic_a"] = function() { // code for cb a } windows.callbacks["topic_b"] = fu
socket.on("sometopic", function() {
// this is a callback
}
现在让我们假设我有10个不同的主题,每个主题都有一个对应的处理函数,我保存在我的窗口中,例如:
windows.callbacks["topic_a"] = function() {
// code for cb a
}
windows.callbacks["topic_b"] = function() {
// code for cb b
}
windows.callbacks["topic_z"] = function() {
// code for cb z
}
我希望在每次回调结束时都执行一段代码。一个简单的解决方法是使用此代码创建一个函数,并在每个回调的末尾添加一个调用,但这远远不够优雅
有谁能提出更好的解决方案吗?有没有我不知道的最佳实践?我对这种函数式编程相当熟悉。考虑使用jQuery Deferred对象,并添加一个方法来执行“always”
考虑使用jQuery延迟对象,并添加一个方法来执行“always”
为什么说在每次回调结束时调用另一个函数远远不够优雅?有时候,直接的方法确实是最具可读性的,因为最终我会有大量的重复,不知何故我觉得应该有更好的机制来实现这一点。这是一个回调函数,当你完成它时,执行另一个函数。为什么你说在每次回调结束时调用另一个函数远远不够优雅?有时候,直接的方法确实是最具可读性的,因为最终我会有大量的重复,不知何故我觉得应该有更好的机制来实现这一点。这是一个回调函数,当你完成它时,执行另一个函数。有趣的解决方案,它最终满足了我的需要。谢谢有趣的解决方案,它最终满足了我的需求。谢谢这是一个有趣的jQuery特性,但我担心将它链接到我的非jQuery代码会花费太多的胶水代码。。。尽管如此,它仍然是一个解决方案。这是一个有趣的jQuery特性,但我担心将它链接到非jQuery代码会花费太多的胶水代码。。。尽管如此,这仍然是一个解决方案。
// THIS IS AN IDEA
// helper
function teardownWith(fn){
return function (cb){
return function(){
return (cb(), fn());
};
};
}
// prepare a modified function
var endWithDate = teardownWith(function(){
log(Date());
});
// pass our callback into the modified function
// endWithDate() returns the final callback.
window.callbacks["cb_a"] = endWithDate(function(){
// code for cb_a
});