繁体   English   中英

JavaScript回调或返回字符串

[英]Javascript Callback Or Return String

我想知道以下哪一项是正确的做法,还是哪一项更快?

我有一个生成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字符串这是否是异步任务? 我只是不确定。

通常,我们应该从函数return并避免callbacks

我认为回调是用于必须使用non-blockingasynchronous调用(如AJAX请求)的情况。 一切都会通过callback完成

因为您不知道何时完成任务,所以如果您想在完成任务后执行某些操作,我们将使用回调。

我说returncallback更好。 如果回调太多,则将其作为回调金字塔

选择更简单的解决方案,返回字符串,直到有理由做更复杂的事情为止。

据我所知,makeChatMsg将运行得非常快。 没有理由使其异步运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM