gpt4 book ai didi

javascript - Node.js 中的函数总是返回 undefined

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

我是nodejs的新手,当然我会看到一些指南/截屏视频来学习一点;但我对异步/同步、读取文件以及 Nodejs 如何处理回调/返回非常感兴趣。例如,我无法从此请求查询返回变量:

function call (method, parameters){
fs.readFile("./cache/session", function(err, data){
var pieces = data.toString().split(),
sessionid = (method != "createsession") ? "/" + pieces[0] : "",
vars = (!parameters) ? "/" + parameters : "",
endpoint = "http://rest.svc/" + method + "json/";

request({ url: endpoint}, function(error, response, body){
if(!error)
return body;
})
})
}

“在纸上”,我的意思是在 javascript 上这将完美地工作,但在 Node 中总是返回一个 未定义,我在 stackoverflow 上阅读了有关此的其他帖子,但没有人对我进行澄清。

最佳答案

使用异步函数,例如 call 需要您将回调参数传递给函数,然后回调的参数就是您的“返回”,因为异步函数将在您的 fs.readFile 响应之前返回(未定义)。

function call (method, parameters, callback){
fs.readFile("./cache/session", function(err, data){
var pieces = data.toString().split(),
sessionid = (method != "createsession") ? "/" + pieces[0] : "",
vars = (!parameters) ? "/" + parameters : "",
endpoint = "http://rest.svc/" + method + "json/";

request({ url: endpoint}, function(error, response, body){
if(!error)
callback(body)
})
})
}

关于javascript - Node.js 中的函数总是返回 undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28480879/

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