淺談 Node.js 的 callback 及 JavaScript object reference 的特性
Node.js 是用 Chrome V8 JavaScript engine 發展而成。V8 快的原因在於應用了 JIT 以及把 JavaScript 先 compile 成 C++ 再執行。而 Node.js 快的原因除了因使用了 V8 外,就是其著名的 event-driven / callback 機制。Node.js 把 time consuming 的 tasks 例如 disk IO、DB access、network requests 等,包裝成 callback。CPU 不會等回應就繼續執行。 初學者會覺得好困擾,個 program 不知何解有時能正確返回結果,有時就不能。原因在於 callback 及跟 JavaScript object 的 reference 特性有關。 能正確返回結果的原因是 CPU 剛巧被其他 task 阻一阻,以致幸運地等到了 callback,而 object reference… Read More »