20200308

@xiaojingzhao

Plan

  • 你不知道的 js 中卷 -- 回调 p161
  • Linux 命令行大全

Notes

信任问题

  1. 控制反转(inversion of control) -- 由某个第三方执行程序的一部分。比如 ajax 库处理 http response

用第三方库的话,可能会由于第三方库的 bug 而产生 bug。

结论 当使用第三方库时,回调会引起控制反转的问题,这设计到对第三方库的信任问题

尝试挽救回调

  • "error-first"风格 / Node 风格 -- 回调第一个参数保留用作错误对象
  • Dont release Zalgo -- don't mix the sync or async return in one callback

如何避免 Zalgo?

if (errors.length) {
  process.nextTick(function() {
    callback(null, errors);
  });
  return;
}

More