Mã ví dụ:
Hub.listen('auth', event => {
const { event: type, data } = event.payload;
if (type === 'signIn') {
const session = data.signInUserSession;
console.log('SESSION', data.signInUserSession);
setTimeout(() => {
console.log('SESSION', data.signInUserSession);
}, 100);
}
});
Khi sử dụng lời thề, sau khi nhà cung cấp chuyển hướng đến ứng dụng của tôi, Hub sẽ khởi động một signIn
sự kiện. Tuy nhiên, signInUserSession
tài sản là null
khi sự kiện được kích hoạt, nhưng sẽ có giá trị một thời gian sau đó (trong vòng 100 ms). Điều này dường như không xảy ra khi sử dụng Auth.signIn(email, password)
trực tiếp; signInUserSession
được đưa vào khi sự kiện bị sa thải.
Điều gì đang xảy ra ở đây, và làm thế nào tôi có thể đi xung quanh nó? Hiện tại, tôi có một sự chậm trễ rõ ràng trong mã, đó là một vụ hack khủng khiếp.
Hub.listen
để cấp nguồn cho kênh sự kiện. Tuy nhiên, tôi cũng đã thử chạy mã ví dụ trên trực tiếp từ một saga và gặp vấn đề tương tự.