2016-05-09 7 views
1
function Job(name, cronString, task) { 
    "use strict"; 

    this.name = name; 
    this.cronString = cronString; 
    this.isReady = false; 
    this.task = task; 
} 

Job.prototype.performTask = (db, winston) => { 
    "use strict"; 
    const Promise = require("bluebird"); 
    let that = this; 
    return new Promise((resolve, reject) => { 
     let output = ""; 
     let success = true; 

     try { 
      output = that.task(); 
     } 
     catch(error) { 
      success = false; 
      reject(error); 
     } 

     if(success) { 
      resolve(output); 
     } 
    }); 
}; 

module.exports = Job; 

Javascript初心者はここです。 Jobオブジェクトを作成してperformTaskメソッドを呼び出すと、「that.taskは関数ではありません」というメッセージが表示されます。 performTaskメソッドの冒頭のthisJobを参照してください。 私が作っている間違いは何ですか? また、私がここでやろうとしていることを実行する良い方法がありますか?ノード - this.func()は関数ではありません

+0

あなたの 'Job.prototype.task'関数はどこにありますか? – Overv

+0

@Overvコンストラクタ関数で渡されます。 –

+1

[矢印関数と関数宣言/式の重複の可能性:それらは同等か交換可能ですか?](http://stackoverflow.com/questions/34361379/arrow-function-vs-function-declaration-expressions-are-the-equivalent -exch) – user2864740

答えて

関連する問題