我正在使用AWS查询,并且希望在函数外部可以访问返回值。如您所见,我有一个查询功能,里面是一个if else语句。我希望在此功能之外可以访问“成功”的值。
docClient.query(params, function(err, data) {
if (err) {
console.error("Unable to read item. Error JSON:", JSON.stringify(err,
null, 2));
} else {
console.log("GetItem succeeded:", JSON.stringify(data, null, 2));
var success = data.Items[0].hash_key;
return success;
}
});
答案 0 :(得分:0)
在函数范围之外声明变量,然后在函数中对其进行更改:
let success = '';
docClient.query(params, function(err, data) {
if (err) {
console.error("Unable to read item. Error JSON:", JSON.stringify(err,
null, 2));
} else {
console.log("GetItem succeeded:", JSON.stringify(data, null, 2));
success = data.Items[0].hash_key;
}
});
答案 1 :(得分:0)
您可以在全局范围内声明诸如markmoxx之类的内容。
但是由于这是一个异步调用,我想您在及时设置该变量方面遇到了问题。
我建议使用回调函数。
let awsFunc = function( params, cb )
{
docClient.query(params, function(err, data) {
if (err) {
console.error("Unable to read item. Error JSON:", JSON.stringify(err,
null, 2));
cb(false);
} else {
console.log("GetItem succeeded:", JSON.stringify(data, null, 2));
var success = data.Items[0].hash_key;
cb(success);
}
});
}
然后您可以在其他地方致电:
awsFunc( params, function(success)
{
console.log("How'd it go? " + success);
}