AI を使って数日で Node.js を学ぶ - 4 日目

PHPz
リリース: 2024-08-29 11:31:32
オリジナル
328 人が閲覧しました

Learning Node.js in Days with AI - Day 4

今日は、ChatGPT の助けを借りて Node.js の学習を続け、非同期プログラミングに焦点を当てました。これは Node.js の最も重要な概念の 1 つであり、それをマスターし始めることに興奮しています。

理論

Node.js では、ノンブロッキングのイベント駆動型アーキテクチャにより、非同期プログラミングが重要です。これは、ファイル読み取り、データベース クエリ、ネットワーク リクエストなどの操作が、結果の待機中に他のコードの実行をブロックしないことを意味します。

非同期操作を処理する 3 つの主な方法を検討しました。

  1. コールバック: 他の関数に引数として渡される関数。非同期操作が完了すると実行されます。

    const fs = require('fs');
    
    fs.readFile('example.txt', 'utf8', (err, data) => {
        if (err) {
            console.error(err);
            return;
        }
        console.log(data);
    });
    
    ログイン後にコピー
  2. Promises: 非同期操作の最終的な完了 (または失敗) とその結果の値を表すオブジェクト。 Promise を使用するとチェーンが可能になり、ネストされたコールバックと比較してコードが読みやすくなります。

    const fs = require('fs').promises;
    
    fs.readFile('example.txt', 'utf8')
        .then(data => {
            console.log(data);
        })
        .catch(err => {
            console.error(err);
        });
    
    ログイン後にコピー
  3. Async/Await: Promise の上に構築された糖衣構文で、同期的な方法で非同期コードを作成できます。

    const fs = require('fs').promises;
    
    async function readFile() {
        try {
            const data = await fs.readFile('example.txt', 'utf8');
            console.log(data);
        } catch (err) {
            console.error(err);
        }
    }
    
    readFile();
    
    ログイン後にコピー

実践的なタスク

今日はコールバックベースの関数をプロミスベースの関数に変換する練習をしました。

コールバックを含む元のコード:

const fs = require('fs');

function readFileCallback(path, callback) {
    fs.readFile(path, 'utf8', (err, data) => {
        if (err) {
            callback(err);
            return;
        }
        callback(null, data);
    });
}

readFileCallback('example.txt', (err, data) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log(data);
});
ログイン後にコピー

Promise への変換:

const fs = require('fs').promises;

function readFilePromise(path) {
    return fs.readFile(path, 'utf8');
}

readFilePromise('example.txt')
    .then(data => {
        console.log(data);
    })
    .catch(err => {
        console.error(err);
    });
ログイン後にコピー

独立したタスク

また、async/await を使用して、ファイルの内容を読み取り、コンソールに記録する非同期関数も作成しました。エラーが発生した場合 (ファイルが見つからないなど)、エラーを捕捉してログに記録する必要があります。

const fs = require('fs').promises;

async function readFileAsync(path) {
    try {
        const data = await fs.readFile(path, 'utf8');
        console.log(data);
    } catch (err) {
        console.error(err);
    }
}

readFileAsync('example.txt');
ログイン後にコピー

リソース

ChatGPT によって作成されたすべてのレッスンは、https://king-tri-ton.github.io/learn-nodejs

で見つけることができます。

以上がAI を使って数日で Node.js を学ぶ - 4 日目の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート