也许用旧的JavaScript等待值填充的方法对于确保代码不会失败,即使代码填充所需的时间比预期的要长。
这是示例代码,通常在没有其他选项可用时使用。
waitForValue(){
if(myVar!= null && typeof myVar !== "undefined"){
//value exists,do what you want
console.log(myVar)
}
else{
setTimeout(() => {this.waitForValue()},100);
}
}
您可以根据需要重构此示例代码。
或者,AWS Amplify还具有其他方法来获取当前登录的用户会话。例如Auth.currentAuthenticatedUser()
和Auth.currentSession()
返回承诺。它们可以这样使用
private async getUser(){
let user = null;
try {
user = await Auth.currentAuthenticatedUser();
//console.log(user);
} catch (err) {
//console.log(err);
}
//return user;
}
,
我不习惯aws放大-只是阅读一些github,到目前为止,我可以看到我们需要有关您的userPool
实现的信息-我想有些奇怪的回调问题
但要解决此问题,您可以代理该引用:
const event = {type: "signIn",data: {signInProperty: "null"}}
setTimeout(()=>event.data.signInProperty = "{Stack: Overflow}",1000)
// mock events
function emit(type,args){
console.log(type,args)
}
//initialize
let watchedValue = event.data.signInProperty
document.getElementById("app").innerHTML = event.data.signInProperty
// protect reference
Object.defineProperty(event.data,"signInProperty",{
set(newValue){
watchedValue = newValue
document.getElementById("app").innerHTML = newValue
emit("event:signInCompleted",event.data)
},get(){
return watchedValue
}
})
<div id="app"></div>
本文链接:https://www.f2er.com/3136307.html