setinterval không hoạt động khi tab bị freeze
IT Lane
Đã trả lời thg 6 24, 2023 3:17 SA
// example code from chatGPT
function openPaymentWindow() {
return new Promise((resolve, reject) => {
const paymentWindow = window.open("https://example.com/payment");
// Lắng nghe sự kiện khi trang thanh toán redirect về
window.addEventListener("message", (event) => {
if (event.origin === "https://example.com" && event.data === "payment_success") {
resolve();
}
});
// Xử lý trường hợp trang thanh toán không redirect về sau một khoảng thời gian nhất định
setTimeout(() => {
reject(new Error("Timeout: Payment window did not redirect back."));
}, 60000); // Thời gian chờ tối đa là 60 giây
});
}
async function performPayment() {
try {
await openPaymentWindow();
console.log("Payment successful!");
// Tiếp tục xử lý sau khi thanh toán thành công
} catch (error) {
console.error("Payment error:", error);
// Xử lý lỗi khi thanh toán thất bại hoặc timeout
}
}
performPayment();
0
Tổ chức
Chưa có tổ chức nào.