Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点-此.func()不是函数_Javascript_Node.js_Scope_Prototype_This - Fatal编程技术网

Javascript 节点-此.func()不是函数

Javascript 节点-此.func()不是函数,javascript,node.js,scope,prototype,this,Javascript,Node.js,Scope,Prototype,This,这里是Javascript新手。当我创建一个Job对象并调用performTask方法时,我得到“that.task不是函数”。这个在performTask方法的一开始不应该引用作业? 我犯了什么错误? 还有,有没有更好的方法来完成我在这里要做的事情 我犯了什么错误 您正在使用箭头函数此内部箭头函数的解析方式不同,它不会引用您的作业实例 不要对原型方法使用箭头函数 查看以获取更多信息。您的作业.原型.任务函数在哪里?@Overv它在构造函数中传递。可能与 function Job(name, c

这里是Javascript新手。当我创建一个
Job
对象并调用
performTask
方法时,我得到“that.task不是函数”。
这个
performTask
方法的一开始不应该引用
作业
? 我犯了什么错误? 还有,有没有更好的方法来完成我在这里要做的事情

我犯了什么错误

您正在使用箭头函数
内部箭头函数的解析方式不同,它不会引用您的
作业
实例

不要对原型方法使用箭头函数


查看以获取更多信息。

您的
作业.原型.任务
函数在哪里?@Overv它在构造函数中传递。可能与
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;