简体   繁体   English

Javascript:将数据从本地传递到全局

[英]Javascript: passing data from local to global

I am practicing AWS-S3 bucket and passing data from local to global scope.我正在练习 AWS-S3 存储桶并将数据从本地传递到全局 scope。 It's an simple Javascript concept.这是一个简单的 Javascript 概念。 I have array of strings value which I am getting from S3 bucket.我有从 S3 存储桶获取的字符串值数组。 I can see my data when I console it.当我控制台时,我可以看到我的数据。 I am trying pass this data to global scope.我正在尝试将此数据传递给全局 scope。 I tried push method, spread operator but it did not work.我尝试了推送方法,传播运算符,但它不起作用。 Global scope gives me empty array. Global scope 给了我空数组。 I don't get what I am doing wrong.我不明白我做错了什么。

I get data from S3 bucket like this我像这样从 S3 存储桶获取数据

["182363", "j9292092", "20282"]

I want pass my data to global variable exactly this.我想将我的数据完全传递给全局变量。

this is my piece of code这是我的一段代码

  const allSKU = []
  await s3.getObject(params, function (err, data) {
    if (err) console.log(err, err.stack);
    // else console.log(data.Body.toString('utf-8')); // I can see the data
    const allSku = data.Body.toString('utf-8')
    //console.log(allSku);
    allSKU.push(allSku)
  });


  console.log(allSKU); // give me empty arrays

when passing callback method, await has no effect as method is not returning a promise传递回调方法时,等待无效,因为方法没有返回 promise

s3.getObject(params, function (err, data) => {})

we can return a promise, by calling.promise() on most of the AWS v2 SDK methods.我们可以通过在大多数 AWS v2 SDK 方法上调用.promise() 来返回 promise。

   const data = await s3.getObject(params).promise()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM