gpt4 book ai didi

node.js - 使用 Node 模块的返回值作为变量?

转载 作者:太空宇宙 更新时间:2023-11-03 22:01:33 25 4
gpt4 key购买 nike

我目前正在尝试编写一个简单的小 Node 模块,以便更轻松地访问 API。我遇到的问题是我希望能够调用

var randomVar = myModule.function()

并将该函数的输出分配给变量。我相信它就像返回有问题的值一样简单,但是 randomVar 保持未定义状态,我显然在这里遗漏了一些东西。

这是我的 HTTP 请求,看起来相当标准:

exports.function = function(){

var options = {
// stuff
};

fetchResult = function(options,callback){
var http = require('http');
var str = '';

http.get(options,function(res){

res.on('data',function(chunk){
str += chunk;
});

res.on('end',function(){
callback(JSON.parse(str));
});

}).on('error', function(e){
callback(e.message);
});
}

fetchResult(options,function(data){
console.log(data);
// what do I do here?
});
}

底部的 console.log 输出了我想要的数据,但是我到底该怎么做才能将其分配给模块外部的变量?

提前非常感谢您。

最佳答案

嗯,您尝试返回的函数是一个异步函数,因此您必须等待操作完成才能使用该变量。这就是回调发挥作用的地方!

在您的exports.function中添加一个名为callback的参数

exports.function = function (callback) {

callback 是将使用您的数据的函数!因此,从 fetchResult 运行:

callback(data);

现在您将调用并使用此函数:

myModule.function(function(data) {
//console.log(data); //the data you want!
});

关于node.js - 使用 Node 模块的返回值作为变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22338657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com