gpt4 book ai didi

javascript - Amazon DynamoDB DocumentClient().get() 使用函数外的值

转载 作者:行者123 更新时间:2023-11-30 20:04:23 26 4
gpt4 key购买 nike

如何在 docClient.get() 之外获取 data.Item.Name 以便在其他函数中进一步使用它。

const docClient = new awsSDK.DynamoDB.DocumentClient();

docClient.get(dynamoParams, function (err, data) {
if (err) {
console.error("failed", JSON.stringify(err, null, 2));
} else {
console.log("Successfully read data", JSON.stringify(data, null, 2));
console.log("data.Item.Name: " + data.Item.Name);
}
});

// how can i use "data.Item.Name" here:

console.log(data.Item.Name);
return handlerInput.responseBuilder
.speak(data.Item.Name)
.getResponse();

最佳答案

欢迎使用异步 javascript。

您的选择是:

  • 在回调中继续你的逻辑
  • 重构您的代码以使用 async/await

我将给出 async/await 选项的示例,但是您需要在代码的其他区域进行一些重构,以支持这一点。

async function wrapper() {
const docClient = new awsSDK.DynamoDB.DocumentClient();

docClient = require('util').promisify(docClient)

var data = await docClient(dynamoParams);

console.log(data.Item.Name);
return handlerInput.responseBuilder
.speak(data.Item.Name)
.getResponse();
}

我假设您的代码位于名为 wrapper 的函数中。请注意,您需要在此函数中添加 async 关键字。

它现在也返回一个 promise,因此要从 wrapper 获取返回值,您需要 await 它(在您调用它的代码部分).这意味着您还需要将 async 关键字添加到顶级函数中……等等。

关于javascript - Amazon DynamoDB DocumentClient().get() 使用函数外的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53068594/

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