javascript - 戻り値 - コールバックとは




nodeJsコールバックの簡単な例 (4)

fs.readFilefs.writeFilefs.readFileテキストファイルをコピーする例を示します:

var fs = require('fs');

var copyFile = function(source, destination, next) {
  // we should read source file first
  fs.readFile(source, function(err, data) {
    if (err) return next(err); // error occurred
    // now we can write data to destination file
    fs.writeFile(destination, data, next);
  });
};

これがcopyFile関数の使用例です:

copyFile('foo.txt', 'bar.txt', function(err) {
  if (err) {
    // either fs.readFile or fs.writeFile returned an error
    console.log(err.stack || err);
  } else {
    console.log('Success!');
  }
});

共通のnode.jsパターンは、コールバック関数の最初の引数がエラーであることを示しています。 すべての制御フローモジュールがそれに依存しているので、このパターンを使用する必要があります。

next(new Error('I cannot do it!')); // error

next(null, results); // no error occurred, return result

誰も私にnodeJsコールバックの簡単な例を与えることができます、私はすでに多くのウェブサイトで同じものを検索しましたが、それを正しく理解することはできません。

getDbFiles(store, function(files){
    getCdnFiles(store, function(files){
    })
})

私はそのようなことをしたい...


あなたが読むことができるようにこの例を試してみてください。単にsave newfile.jsを実行してノードnewfileを実行し、アプリケーションを実行してください。

function myNew(next){
    console.log("Im the one who initates callback");
    next("nope", "success");
}


myNew(function(err, res){
    console.log("I got back from callback",err, res);
});

私たちは単純な関数を作成しています

callBackFunction (data, function ( err, response ){
     console.log(response)
}) 

// callbackfunction 
function callBackFuntion (data, callback){
    //write your logic and return your result as
callback("",result) //if not error
callback(error, "") //if error
}

var myCallback = function(data) {
  console.log('got data: '+data);
};

var usingItNow = function(callback) {
  callback('get it?');
};

ノードまたはブラウザのコンソールを開き、上記の定義を貼り付けます。

最後に、次の行に使用してください:

usingItNow(myCallback);

ノードスタイルのエラー規約に関する

コスタは、ノードエラーのコールバック規則を守るためには、このように見えます。

この規約では、コールバックは少なくとも1つの引数、つまり最初の引数をエラーとして受け取ることを期待する必要があります。 必要に応じて、コンテキストに応じて1つまたは複数の追加引数を指定します。 この場合、コンテキストは上記の例です。

ここで私はこの大会での例を書き直します。

var myCallback = function(err, data) {
  if (err) throw err; // Check for the error and throw if it exists.
  console.log('got data: '+data); // Otherwise proceed as usual.
};

var usingItNow = function(callback) {
  callback(null, 'get it?'); // I dont want to throw an error, so I pass null for the error argument
};

エラーケースをシミュレートする場合は、thisItNowを次のように定義することができます

var usingItNow = function(callback) {
  var myError = new Error('My custom error!');
  callback(myError, 'get it?'); // I send my error as the first argument.
};

最終的な使用法は上記とまったく同じです:

usingItNow(myCallback);

唯一の動作の違いは、あなたが定義したusingItNowバージョンにusingItNowます:最初の引数のコールバックに "真理値"(Errorオブジェクト)を与えるもの、またはエラーのためにnullを与えるもの引数。





asynccallback