2016-04-16 6 views
0

私はノードjを初めて使っています。ノードjsのドキュメントはあまりよく分かりません。 このfs.unlink機能ノードjs fs.unlink()はどのように動作するのですか

const fs = require('fs'); 

fs.unlink('/tmp/hello', (err) => { 
    if (err) throw err; 
    console.log('successfully deleted /tmp/hello'); 
}); 

では、非同期の形式は常に最後 引数として完了コールバックを取ります。完了コールバックに渡される引数は、 メソッドに依存しますが、最初の引数は常に 例外のために予約されています。操作が正常に完了した場合、最初の 引数はnullまたは未定義になります。

は、引数が最初に実行されますhttps://nodejs.org/api/fs.html#fs_fs_readfilesync_filename_options

から引用しますか?コールバックまたは最初の引数?最初の引数はなぜ例外のために予約されたのですか?

+1

あなたの質問はここにはっきりしていません。 'err'は' fs.unlink() '操作でエラーがあったかどうかを示すパラメータです。設定されている場合、 'err'はエラーに関する情報を含むErrorオブジェクトです。設定されていない場合、操作は成功しました。それがすべてです。 – mscdex

答えて

2

これは、Node.js I/O API関数の一般的なパターンです。あなたがこの

const fs = require('fs'); 

var resultHandler = function(err) { 
    if(err) { 
     console.log("unlink failed", err); 
    } else { 
     console.log("file deleted"); 
    } 
} 

console.log("about to call unlink"); 
fs.unlink('/tmp/hello', resultHandler); 
console.log("called unlink"); 

のようなコードを書く場合には、このコードが実行されると、あなたがコールバック関数resultHandlerは、Node.jsので呼ばれることが

about to call unlink 
called unlink 
file deleted (or unlink failed if operation ecountered an error) 

をプリントアウトして表示されます理解しやすいかもしれませんI/O操作が完了した後にAPIが呼び出された場合、API関数を呼び出した後に長時間かかる可能性があります。コールバック関数の最初の引数はerrです。エラーがない場合はnull、それ以外の場合はエラーメッセージがあります。

+0

ありがとうございました!私は今完全に理解している! –

+0

誰が**エラー**引数を渡すつもりですか?どのように多くのパラメータをコールバック関数に含めるべきか、そしてどのような理由で、どのようにパラメータを知ることができますか?ありがとう –

+0

アンリンクの単語が混乱しています!実際にはその場所からファイルを削除しています。ファイルは削除後どこに行きますか?ゴミ箱や/ tmp /で見つけられない! – Nigilan

関連する問題