Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.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 将返回值导出到Node.js中的其他文件_Javascript_Node.js - Fatal编程技术网

Javascript 将返回值导出到Node.js中的其他文件

Javascript 将返回值导出到Node.js中的其他文件,javascript,node.js,Javascript,Node.js,我有一个如下的函数 class MyClass { myFunction() { return new Promise((resolve, reject) => { if(....) { resolve(data) } else { reject(err) } }) } } module.exports = MyClass; 我可以从下面这样的其他

我有一个如下的函数

class MyClass {

    myFunction() {
      return new Promise((resolve, reject) => {
        if(....) {
          resolve(data)
           } else {
          reject(err)
         }
      }) 
    }
}

module.exports = MyClass;
我可以从下面这样的其他文件访问这个类

const MyClass = require('./fileName.js').prototype;

const exportData = MyClass.myFunction().then(data => {
    return data;
}).catch(err => {
    console.log(err)
})

console.log(exportData) //exportData is not null

module.exports = exportData;
当我想将此
exportData
导出到其他文件时,
exportData
的值在其他文件中为空。但如果我不导出此
exportData
,则它不是空的。 如何解决这个问题? 谢谢。

这会让你有更深入的了解

尝试导出承诺本身。这将是最好的做法,而不是发送数据。通过这种方式,只需执行一次JS,就可以最大化JS的异步属性。承诺只执行一次,您可以重复获取数据,而无需施加处理负载

const MyClass = require('./fileName.js').prototype;

const exportData = MyClass.myFunction()
// Here you are exporting the promise as is.
module.exports = exportData;
如链接中所述。不利的一面是数据不会被刷新。因此,一旦调用了拒绝,每次它都会被拒绝,数据也会被拒绝,使其成为静态的。

这会让您进一步了解

尝试导出承诺本身。这将是最好的做法,而不是发送数据。通过这种方式,只需执行一次JS,就可以最大化JS的异步属性。承诺只执行一次,您可以重复获取数据,而无需施加处理负载

const MyClass = require('./fileName.js').prototype;

const exportData = MyClass.myFunction()
// Here you are exporting the promise as is.
module.exports = exportData;

如链接中所述。不利的一面是数据不会被刷新。因此,一旦调用了拒绝,每次都是拒绝,数据也会被拒绝,使其成为静态。

尝试在then块中移动module.exports。promise使块同步,但它们本身是异步块。但如果调用了reject block,请小心,在这种情况下,exportData可能为null。这是否回答了您的问题@你能举个例子吗?@Codingb先生,我想这是我的问题。能否给出代码示例?请尝试在then块中移动module.exports。promise使块同步,但它们本身是异步块。但如果调用了reject block,请小心,在这种情况下,exportData可能为null。这是否回答了您的问题@你能举个例子吗?@Codingb先生,我想这是我的问题。你能举个例子吗?我明白你的意思。这种技术不能很清楚地解决我的问题。但这是有帮助的。谢谢,我明白你告诉我的。这种技术不能很清楚地解决我的问题。但这是有帮助的。谢谢