Back to Cheat Sheets

Writing

JavaScript for Beginners Series - Part 12 (English & Darija)

Part 12 of the JavaScript for Beginners series by Ibtissam Oulahchoum. This guide covers Async/Await and the Fetch API. Learn how to write cleaner asynchronous code that looks synchronous and how to retrieve data from external APIs. Includes simplified explanations in Moroccan Darija.

JavaScript Async Await Fetch API Web Development Darija Asynchronous

January 24, 2026 · 4 min read

JavaScript for Beginners Series - Part 12 (English & Darija)

JavaScript for Beginners: Part 12

Async/Await & Fetch: Mastering the Modern Web

Welcome to Part 12! Today, we are upgrading our asynchronous coding skills. We will learn Async/Await—the cleanest way to handle tasks that take time—and the Fetch API, which allows our code to talk to the rest of the world.

1️⃣ Async/Await: Cleaner, Readable Code

While .then() and .catch() are great, they can lead to "callback hell" or messy nested code. Async/Await is a modern syntax that makes asynchronous code look and feel like "normal" (synchronous) code.

  • async: Put this before a function to tell JavaScript: "This function will handle background tasks and return a Promise."
  • await: This tells JavaScript: "Pause right here and wait for the task to finish before moving to the next line." (Note: await only works inside async functions).
🇲🇦 Darija:
هاد الطريقة هي النسخة العصرية ديال الـ Promises. عوض ما نبقاو نكترو من .then()، كنستعملو Async/Await باش الكود يبان نقي وساهل ف القراءة بحال إلا كيقرا شي كتاب.
  • async: كتعلم بها باللي الدالة غاتخدم ف الخلفية.
  • await: كتقول لجافاسكريبت "حبسي هنا وتسناي هاد الخدمة تسالي" عاد كملي السطر اللي موراه.

2️⃣ The Fetch API

The fetch() function is the modern browser tool used to make network requests (e.g., getting data from a database or an external API).

  • How it works: fetch() returns a Promise that gives you a Response object.
  • The Data: To get the actual data you can use, you usually need to convert it using .json() (which also returns a Promise).
🇲🇦 Darija:
fetch() هي باش كنهضرو مع مواقع أو سيرفورات خرين باش نجيبو منهم معلومات (بحال الأخبار، حالة الطقس، أو معلومات المستخدمين). فاش كنستعملو fetch، كترجع لينا واحد الـ Response، وخاصنا نزيدو نستعملو .json() باش نحولو دوك المعلومات لشي حاجة نقدرو نفهموها ونخدمو بها فـ جافاسكريبت.

💻 Code Example: Fetching GitHub Data

Here is how to get a user's profile from GitHub using the modern way:

// 1. We mark the function as 'async'
async function getGitHubUser(username) {
    const apiUrl = `https://api.github.com/users/${username}`;

    // 2. We use try...catch to handle any errors (like no internet)
    try {
        console.log("Fetching user data...");

        // 'await' pauses the function until fetch is done
        const response = await fetch(apiUrl);

        // 'await' pauses again until data is converted to JSON
        const userData = await response.json();

        // Check if the user was actually found
        if (response.ok) {
            console.log(`✅ Name: ${userData.name}`);
            console.log(`👥 Followers: ${userData.followers}`);
        } else {
            console.log("❌ User not found");
        }

    } catch (error) {
        console.error("Oops, something went wrong:", error.message);
    }
}

// Call the function
getGitHubUser("torvalds");

📝Key Takeaways (الملخص)

  • The async Keyword: This signals that a function is asynchronous and will always return a Promise, allowing it to handle background operations smoothly.
    • Darija: كنعلمو بها الدالة بلي غاترجع Promise وغاتخدم فـ الخلفية بلا ما تبلوكي لينا الموقع.
  • The await Operator: This tells the code to wait for a Promise to resolve before continuing, making complex logic much easier to follow.
    • Darija: كيخلي الكود يتسنى النتيجة ديال شي مهمة بلا ما يترون، وهكا كنفهمو الترتيب ديال الخدمة بسهولة.
  • The fetch() API: This is the standard method for requesting data from external servers, acting as the primary way to connect your app to the internet.
    • Darija: هي الأداة اللي كتمكن الموقع ديالنا يهضر مع العالم الخارجي ويجيب الداتا من سيرفورات خرين.
  • The .json() Method: This is used to transform raw data received from a server into a JavaScript object that you can easily manipulate in your code.
    • Darija: هي اللي كتحول لينا البيانات الخام اللي جاية من السيرفور لشكل مفهوم نقدروا نجبدو منو السميات، التصاور، أو أي معلومات أخرى.
  • The try...catch Block: This acts as a safety net when using async/await, allowing you to handle errors (like a failed connection) without crashing your entire program.
    • Darija: هو "الشبكة ديال الأمان"؛ إيلا وقع مشكل فـ الـ fetch أو مكانش الإنترنيت، الكود كيمشي لـ catch باش يعلمنا بلا ما يوقف الموقع كامل.

Next up: Part 13 – Final Project: Building a real-world Weather App! 🌦️

Related Cheat Sheets

Mentorship

Want to learn, not just read?

These cheat sheets are the short version. If you want the long one, I teach — one on one, at your pace, on what you are actually trying to build.

Let's talk
  • Learn with guidance

    I will walk you through the fundamentals, review your code, and help you grow past the tutorials.

  • Choose your career path

    Not sure which direction to take? We will talk it through and map a path that fits your strengths and your goals.

Want to work together?

I'm always open to discussing new projects.

Get in Touch