ファイル操作に Node.js を使用するには、まず require('fs') を使用してファイル システム テンプレートを読み込みます。非同期メソッドの最後のパラメータは、完全なコールバック関数 (コールバック関数) です。コールバック関数に渡されるパラメータは通常、メソッド自体に依存しますが、最初のパラメータは常に例外 (err) です。メソッドが正常に実行されると、最初のパラメータは null または未定義になります。同期メソッドを使用して実行すると、例外が即座に発生します。 try または catch を使用して例外を処理し、エラー情報を表示できます。
tmp フォルダーに hello ファイルがある場合の非同期メソッドの例を示します。
このコードは tmp ディレクトリ内の hello ファイルを削除します。削除が成功すると、削除の成功情報がコンソールに表示されます。
引入fs模块 const fs=require("fs"); //异步操作读取文件 fs.unlink('./tmp/hello',(err)=>{ if(err) throw err; console.log('成功删除hello文件'); });
非同期メソッドを使用して同じ機能を実現することもできます。
引入fs模块 const fs=require("fs"); //同步操作读取文件 fs.unlinkSync('./tmp/hello'); console.log('成功删除hello文件');
非同期操作メソッドは実行の成功を保証できないため、コード実行中のファイル操作の順序は非常に重要です。
例: 次のコードはエラーを引き起こします
//重命名hello文件为world文件 fs.rename('./tmp/hello','./tmp/world',(err)=>{ if(err) throw err; console.log('renamed complete'); }); //获取world文件的信息 fs.stat('./tmp/world',(err)=>{ if(err) throw err; console.log(`stats:${JSON.stringify(stats)}`); });
fs.stat は fs.rename の前に実行されます。正しい方法は、コールバック関数を使用して実行することです。
プログラム実行中に例外を処理するためのコールバック関数の正しい使用法は次のとおりです:
fs.rename('./tmp/hello','./tmp/world',(err)=>{ if(err) throw err; fs.stat('./tmp/world',(err,stats)=>{ if(err) throw err; console.log(`stats:${JSON.stringify(stats)}`); }); });
注: 大規模なシステムでは、非同期メソッドを使用することをお勧めします。同期メソッドを使用するとプロセスがロックされます。同期メソッドと比較して、非同期メソッドはパフォーマンスが高く、高速で、ブロッキングが少ないです。
以上が【Node.js】同期と非同期の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。