从外部回调函数读取值

问题描述 投票:0回答:1

我想从我的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...
javascript node.js amazon-web-services callback return
1个回答
0
投票

您必须等待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-如果有人有更好的主意,请分享,乐意知道。

© www.soinside.com 2019 - 2024. All rights reserved.