我想从我的AWS S3存储桶中读取文件。因此,我想从我的回调函数外部访问data.Body.toString()
值。事实是,即使我将return
添加到回调函数中,该值也是不确定的...有人能帮我吗 ?我已经尝试过StackOveflow上给出的一些答案...这是我的代码:
var objectData = s3.getObject(params, function (err, data) {
if (!err)
console.log("Body: " + data.Body.toString()); // Value is printed properly
});
console.log("Body: " + objectData); // Value is undefined...
您必须等待ASYNC
调用完成并获得data
才可以访问它,可能有多种方法可以实现,我会给出一种方法(可能是hacky的方法,但是可以用]]
s3.getObject(params, function (err, data) { if (!err) console.log("Body: " + data.Body.toString()); // Value is printed properly GetValueOutside(data.Body.toString()) }); function GetValueOutside(data){ console.log("Body: " + data); }
从这里您可以设置
variable
来存储数据并在需要的任何地方使用它,但是基本上,您的想法是必须等待调用完成才能访问数据。
P.S-如果有人有更好的主意,请分享,乐意知道。