Skip to the content.

异步

JS 异步编程的方法

1.什么是异步

一个任务分成两段,先执行一段,然后转而执行其他任务,等做好准备,再回过头执行第二段

这种不连续的执行,叫做异步。
相应地,连续执行的叫做同步


回调函数

回调函数把任务的第二段单独写在一个函数里面,等到重新执行这个任务的时候,直接调用这个函数

fs.readFile("/etc/passwd", function (err, data) {
  if (err) throw err;
  console.log(data);
});


分离回调

jquery 的 ajax 是典型的分离回调

$.ajax({}, success, error);
function success(data) {
  console.log(data);
}
function error(err) {
  console.error(err);
}


first error

NodeJS 采用的是 first error,所有系统异步接口第一个参数都是 error 对象

function callback(err, data) {
  if (err) {
    // 出错
    return;
  }
  // 成功
  console.log(data);
}
async("url", callback);


回调函数的罪状


参见