_Life is like a long journey_
_Some ones get on and some off_
_Those can accompany me to the destination are rare_
_Even none_
_Do not feel bad or complain_
_Farewell and thanks to each for the company_
构建合格的 RESTful API Server
这一篇我要把 References 写在前面:
通过这一系列文章,大神已经自顶向下的把构建一个合格的 RESTful API Server 的要点都涉及到了,并且基本都是最佳实践,值得反复咀嚼。这一篇我结合自己的实践做一些 localization 的总结和实践归纳。文中都以 Node.js 的 Express 框架来举例。
用 ES6 特性实现一个标准的轻量级 Promise
Promise 应该是目前 JavaScript 中最流行的异步流程控制解决方案,本文将介绍如何使用 JavaScript ES6 的语言特性,实现一个轻量级的通过了所有官方测例标准的 Promise 库。了解其原理,深入其实现。实际上,Promise 也早已被写入 JavaScript ES6 的标准,作为官方支持的标准异步流程控制解决方案之一。用 ES6 语法实现一个 ES6 中的 Promise,虽然看似没有必要,不过对于深入理解 Promise 以便更好的使用大有裨益。
为了您的最佳阅读体验,在阅读本文之前,建议您已经做到如下事情:
- 可以熟练使用至少任意一个 Promise 库,如 bluebird、Q 等;
- 了解 Promise 标准,可以看这里;
- 熟悉主要的 JavaScript ES6 特性;
完全理解同步/异步与阻塞/非阻塞
随便翻开一本 Node.js 入门书籍的绪论部分,一般都可以看到「异步」、「单线程」、「非阻塞」这样的字眼。因其采用异步非阻塞的模型而构建,Node.js 得以能充分利用 CPU 资源,具有极强的处理高并发请求的能力。
可是到底什么是同步和异步?什么是阻塞和非阻塞?同步就意味着阻塞吗?异步就一定是非阻塞吗?即便是业务经验十分丰富的 Node.js 程序员,都不一定对这些概念辨别得十分明晰。
本文力求以简明的语言来解释清楚这几个概念并加以区分,但不涉及到 Node.js 底层的具体实现。