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 signInsự kiện. Tuy nhiên, signInUserSessiontài sản là nullkhi 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ự.