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
メソッドの冒頭のthis
はJob
を参照してください。 私が作っている間違いは何ですか? また、私がここでやろうとしていることを実行する良い方法がありますか?ノード - this.func()は関数ではありません
あなたの 'Job.prototype.task'関数はどこにありますか? – Overv
@Overvコンストラクタ関数で渡されます。 –
[矢印関数と関数宣言/式の重複の可能性:それらは同等か交換可能ですか?](http://stackoverflow.com/questions/34361379/arrow-function-vs-function-declaration-expressions-are-the-equivalent -exch) – user2864740