我想知道以下是正确的事情,或者哪一个更快?
我有一个生成HTML字符串并将其返回的函数。
我应该如何通过回调返回我生成的字符串,或者只返回它?
MyApp.prototype.makeChatMsg = function(message, callback) {
var html = '<div class="media">';
html += '<div class="media-body">';
//html += '<h4 class="media-heading">' + message.user.first_name + ' ' + message.user.last_name + '</h4>';
html += '<p>' + message.content + '</p>';
html += '</div>';
html += '</div>';
callback(html); // see here
}
VS
MyApp.prototype.makeChatMsg = function(message) {
var html = '<div class="media">';
html += '<div class="media-body">';
//html += '<h4 class="media-heading">' + message.user.first_name + ' ' + message.user.last_name + '</h4>';
html += '<p>' + message.content + '</p>';
html += '</div>';
html += '</div>';
return html; // see here
}
我在MyApp范围内使用这样的函数
第一种方法
this.makeChatMsg(incomingMessage, function(html) {
$('#messages').append(html);
));
第二种方法
var newMessage = this.makeChatMsg(incomingMessage);
$('#messages').append(newMessage);
生成HTML字符串是否是异步任务?我只是不确定..
答案 0 :(得分:2)
通常我们应该return
来自一个函数,并避免使用callbacks
。
我认为回调适用于必须像AJAX请求一样使用non-blocking
或asynchronous
调用的情况。用callback
因为您不知道任务何时完成,所以如果您想在完成任务后执行某些操作,我们会使用回调。
我说return
比callback
更好。如果回调太多,则会产生callback pyramid。
答案 1 :(得分:1)
使用更简单的解决方案,返回字符串,直到您有理由做更复杂的事情。
从我所看到的,makeChatMsg将非常快速地运行。没有理由让它异步运行。