Node.js bersifat asynchronous — operasi I/O tidak memblokir eksekusi.
Callback (cara lama):
fs.readFile("data.txt", (err, data) => {
if (err) throw err;
console.log(data);
});
Promise (cara lebih baik):
fs.promises.readFile("data.txt")
.then(data => console.log(data))
.catch(err => console.error(err));
Async/Await (cara terbaik):
async function bacaFile() {
try {
const data = await fs.promises.readFile("data.txt");
console.log(data);
} catch (err) {
console.error(err);
}
}
Di Express:
app.get("/users", async (req, res) => {
try {
const users = await db.query("SELECT * FROM users");
res.json(users);
} catch (err) {
res.status(500).json({ error: "Database error" });
}
});
Parallel execution:
const [users, posts] = await Promise.all([
db.query("SELECT * FROM users"),
db.query("SELECT * FROM posts"),
]);
// Kedua query berjalan bersamaan!