javascript - 为什么在语法更简洁的情况下使用 javascript 回调?

标签 javascript node.js syntax callback code-readability

我正在尝试学习使用 Node。到目前为止,一切都很好。但是,作为 JavasSript 的新手,当有更清晰、更易读(至少对我而言)的语法可用时,我并没有真正理解使用回调的意义。

下面是一个示例代码,可以使我的观点更清楚:

有回调:

exports.create = function(req, res){
  new Todo({
    content    : req.body.content,
    updated_at : Date.now()
  }).save(function(err, todo, count){
    res.redirect('/');
  });
};

没有回调:

exports.create = function(req, res){
  newtodo = new Todo({
    content    : req.body.content,
    updated_at : Date.now()
  });
  newtodo.save();
  res.redirect('/');
};

这两个代码都将保存新的待办事项和重定向。

我更喜欢第二个,我觉得它更容易阅读,但也许有一个我不明白的区别。有区别吗?

最佳答案

简短的回答是:避免在需要时间的操作完成执行时锁定用户界面。

在您的第二个示例中,如果保存函数进行 ajax 调用,则您必须进行同步 ajax 调用。

关于javascript - 为什么在语法更简洁的情况下使用 javascript 回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16544729/

相关文章:

javascript - 了解恶意js文件

javascript - 在溢出 DIV 中滚动时执行 JavaScript 函数

javascript - mySQL按可变数量更新现有值

javascript - 使用特殊字符 "-"调用 <div> 元素

c++ - c++ 和 c 中的命名空间

javascript - 如何修改 App.js 以显示 HTML 模板

javascript - 即使在设置唯一键时也会 react redux 重复键

node.js - NodeJS Mongoose Schema 'save' 函数错误处理?

javascript - 最大限度地减少通过网络发送的数据 (socket.io)

r - 在 R 函数名称周围添加引号的原因是什么?