欢迎来到 Node.js 进阶教程!在本教程中,你将学习到更多 Node.js 的高级特性,包括异步编程、事件循环、流处理、数据库连接等。
本教程共三篇分别是:入门篇、进阶篇、高阶篇。适用于有一定web前端基础,想通过学习nodejs发展为全栈工程师的人群。
目录
异步编程与 Promise
Node.js 是单线程的,但它通过异步编程模型实现了高并发。Promise 是处理异步操作的一种方式。
创建 async_example.js
:
// 模拟异步操作
function fetchData(name) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (name === '大虫小呓') {
resolve({
name, data: '这是来自服务器的数据' });
} else {
reject(new Error('用户不存在'));
}
}, 1000);
});
}
// 使用 Promise
fetchData('大虫小呓')
.then(result => {
console.log(result);
})
.catch(error => {
console.error(error.message);
});
运行示例:
node async_example.js
async/await 语法
async/await
是 ES2017 引入的特性,它让异步代码看起来像同步代码,更容易理解和维护。
创建 async_await_example.js
:
// 模拟异步操作
function fetchData(name) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (name === '大虫小呓') {
resolve({
name, data: '这是来自服务器的数据' });
} else {
reject(new Error('用户不存在'));
}
}, 1000);
});
}
// 使用 async/await
async function getData() {
try {
const result = await fetchData('大虫小呓');
console.log(result);
} catch (error) {
console.error(error.message);
}
}
getData();
运行示例:
node async_await_example.js