- Mastering Node.js(Second Edition)
- Sandro Pasquali Kevin Faaborg
- 262字
- 2021-07-02 19:28:40
Optimized JavaScript
The JavaScript language is in constant flux, and some major changes and improvements have begun to find their way into native compilers. The V8 engine used in the latest Node builds supports nearly all of the latest features. Surveying all of these is beyond the scope of this chapter. In this section, we'll mention a few of the most useful updates and how they might be used to simplify your code, helping to make it easier to understand and reason about, to maintain, and perhaps even become more performant.
We will be using the latest JavaScript features throughout this book. You can use Promises, Generators, and async/await constructs as of Node 8.x, and we will be using those throughout the book. These concurrency operators will be discussed at depth in Chapter 2, Understanding Asynchronous Event-Driven Programming, but a good takeaway for now is that the callback pattern is losing its dominance, and the Promise pattern in particular is coming to dominate module interfaces.
In fact, a new method util.promisify was recently added to Node's core, which converts a callback-based function to a Promise-based one:
const {promisify} = require('util');
const fs = require('fs');
// Promisification happens here
let readFileAsync = promisify(fs.readFile);
let [executable, absPath, target, ...message] = process.argv;
console.log(message.length ? message.join(' ') : `Running file ${absPath} using binary ${executable}`);
readFileAsync(target, {encoding: 'utf8'})
.then(console.log)
.catch(err => {
let message = err.message;
console.log(`
An error occurred!
Read error: ${message}
`);
});
Being able to easily promisify fs.readFile is very useful.
Did you notice any other new JavaScript constructs possibly unfamiliar to you?
- 廣電5G從入門到精通
- Building Django 2.0 Web Applications
- Hands-On Chatbot Development with Alexa Skills and Amazon Lex
- Building RESTful Web Services with Spring 5(Second Edition)
- 2018網(wǎng)信發(fā)展報告
- 物聯(lián)網(wǎng)與無線傳感器網(wǎng)絡(luò)
- 雷達饋線技術(shù)
- OMNeT++與網(wǎng)絡(luò)仿真
- Hands-On Microservices with Node.js
- 園區(qū)網(wǎng)絡(luò)架構(gòu)與技術(shù)
- 云計算技術(shù)與標準化
- 全聯(lián)網(wǎng)標識服務
- 黑客與反黑工具使用詳解
- 中國信息化年鑒2017
- 網(wǎng)絡(luò)基本通信約束下的系統(tǒng)性能極限分析與設(shè)計