【发布时间】:2019-09-16 03:43:26
【问题描述】:
我正在调用此函数来检索用户属性,但是当我测试该函数时,返回结果始终为“test”,然后它通过“cognitoUser.getUserAttributes”并记录实际结果。我不确定为什么,但最初似乎跳过了“cognitoUser.getUserAttributes”。
运行时,它会打印出 test 而不是实际结果
有什么想法吗?
function retrieveattribute(e) {
var ans = "test";
var e = "custom:InstanceID_1";
cognitoUser.getUserAttributes(function(err, result) {
if (err) {
alert(err);
return;
}
for (i = 0; i < result.length; i++) {
if (result[i].getName() == e) {
ans = result[i].getValue();
console.log(ans);
return ans;
}
}
});
return ans;
}
【问题讨论】:
-
回调函数内部的return语句只从回调函数返回。您应该编写 ans = await cognitoUser.getUserAttributes() 而不是使用回调
-
嗨,马修,你介意稍微扩展一下吗?
标签: javascript asynchronous async-await amazon-cognito