Javascript 回调或返回字符串

标签 javascript string asynchronous callback return

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

我有一个函数可以生成 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 请求)的情况。每件事都可以通过回调

来完成

因为你不知道你的任务什么时候完成,所以如果你想在完成任务后执行某些操作,我们使用回调。

我想说returncallback更好。如果回调太多,结果为 callback pyramid .

关于Javascript 回调或返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25095649/

相关文章:

javascript - 使用纯 javascript 从具有相同类的所有 div 获取值

java - Java中的生产者消费者问题

尽管传输存在,但 Python AsyncIO 由于缺少传输而无法创建协议(protocol)

javascript - Tiny-MCE 在文本框和文本区域上无法正常工作

javascript - 我如何在 DataTable jQuery 插件中打印总金额

javascript - 每页打印的 HTML 脚注

C - 字符串数组和函数

c - c程序删除字符串中重复的单词

python - 从 python 中的一行中拉出特定的子字符串

javascript - 如何在 NodeJs 中使用异步数据源创建可读流?