Javascript回调或返回字符串

Javascript Callback Or Return String

本文关键字:字符串 返回 回调 Javascript      更新时间:2023-09-26

我想知道下面哪一个是正确的事情,或者哪一个更快?

我有一个函数生成一个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

完成

因为你不知道你的任务什么时候会完成,所以如果你想在完成任务后执行一些事情,我们使用callback。

我认为returncallback好。如果有太多的回调,它们会导致回调金字塔

使用更简单的解决方案,返回字符串,直到您有理由执行更复杂的操作。

从我所看到的,makeChatMsg将运行得非常快。没有理由让它异步运行。