我想知道以下哪一项是正确的做法,或者哪一项更快?
我有一个函数可以生成 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
}
对比
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 字符串是否是异步任务?我只是不确定..
最佳答案
通常我们应该从函数返回
并避免回调
。
我认为回调适用于必须使用非阻塞或异步调用(如 AJAX 请求)的情况。每件事都可以通过回调
因为你不知道你的任务什么时候完成,所以如果你想在完成任务后执行某些操作,我们使用回调。
我想说return
比callback
更好。如果回调太多,结果为 callback pyramid .
关于Javascript 回调或返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25095649/