# async/await — नोड.जेएस

Source: https://www.geekswithgeeks.com/hi/nodejs/node-async-await

> ऐसा एसिंक्रोनस कोड लिखें जो सिंक्रोनस जैसा दिखे।

## await रुकता है, ब्लॉक नहीं करता

`await`, चारों ओर के `async` फ़ंक्शन को Promise settle होने तक रोकता है — बाकी Node चलता रहता है।

```javascript
import { readFile } from "node:fs/promises";

async function loadNotes() {
  const data = await readFile("notes.txt", "utf8");
  console.log(data.length, "characters");
}

loadNotes();
```

## Promise.all से समानांतर

एक-एक करके await करना अनुक्रमिक है — साथ चलाने के लिए `Promise.all` उपयोग करें।

```javascript
async function loadBoth() {
  const [notes, config] = await Promise.all([
    readFile("notes.txt", "utf8"),
    readFile("config.json", "utf8"),
  ]);
  console.log(notes.length, config.length);
}
```

**Quiz:** जब कोई फ़ंक्शन किसी Promise का await करता है, तब बाकी Node का क्या होता है?

- [ ] यह पूरी तरह रुक जाता है
- [x] यह बाकी काम चलाता रहता है
- [ ] यह इवेंट लूप को फिर से शुरू करता है

*Answer:* यह बाकी काम चलाता रहता है. `await` केवल वर्तमान async फ़ंक्शन को रोकता है — इस बीच इवेंट लूप बाकी इवेंट संभालने के लिए स्वतंत्र रहता है।
