【发布时间】:2016-05-09 16:15:59
【问题描述】:
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吗?
我犯了什么错误?
另外,有没有更好的方法来做我想做的事情?
【问题讨论】:
-
你的
Job.prototype.task函数在哪里? -
@Overv 在构造函数中传入。
标签: javascript node.js scope prototype this