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先生,我想这是我的问题。你能举个例子吗?我明白你的意思。这种技术不能很清楚地解决我的问题。但这是有帮助的。谢谢,我明白你告诉我的。这种技术不能很清楚地解决我的问题。但这是有帮助的。谢谢