Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 调用静态函数返回’不是函数’大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_874_2@
我正在研究@L_627_0@mean.js堆栈应用程序.当我尝试调用我的某个模型的静态函数时,我收到错误’SomeItem.createNew不是函数

我从另一个不同模式的静态方法调用这个静态方法,就像这样.

不起作用:

var SomeItem = require('./some-item.js');

ascheR_151_11845@a.statics.createNew = function(body,cb) {
    var newA = new this();

    //create child items
    for (i = 0; i < body@L_435_9@meItems.length; i++ {
        SomeItem.createNew(body@L_435_9@meItems[i],function(err,item) {
    }
}

工作:

ascheR_151_11845@a.statics.createNew = function(body,cb) {
    var newA = new this();

    var SomeItem = require('./some-item.js');

    //create child items
    for (i = 0; i < body@L_435_9@meItems.length; i++ {
        SomeItem.createNew(body@L_435_9@meItems[i],item) {
    }
}

但是,如果我将require放在静态函数内部,它可以正常工作.为什么是这样?我想只需要在顶部声明’var SomeItem’一次,而不是在我需要使用它的每个函数中声明.

@H_874_2@

解决方法

require置于函数内部的唯一原因是,您需要的模块使用了一些资源,这些资源在需求模块启动时不可用,但在首次使用该函数时可用.

这不应该发生,但这可能是这里发生的事情 – 竞争条件.如果没有看到有问题的代码,就不可能再告诉你了,但你肯定需要仔细查看所需的模块,寻找竞争条件和时间敏感状态.

更多错误日志记录可以帮助缩小问题范围.

@H_874_2@ @H_874_2@
@H_874_2@
@H_874_2@

大佬总结

以上是大佬教程为你收集整理的node.js – 调用静态函数返回’不是函数’全部内容,希望文章能够帮你解决node.js – 调用静态函数返回’不是函数’所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。