Xử lý Timeout trong Flutter: Hướng dẫn và Ví dụ

Trong Flutter, nếu bạn muốn thực hiện một hành động cụ thể sau một khoảng thời gian nhất định, bạn có thể sử dụng hàm Future.delayed kết hợp với từ khóa asyncawait.

Dưới đây là một ví dụ:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Ví dụ về Timeout'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            thucHienHanhDongVoiTimeout();
          },
          child: Text('Thực hiện hành động với Timeout'),
        ),
      ),
    );
  }

  Future<void> thucHienHanhDongVoiTimeout() async {
    print('Bắt đầu hành động');
    
    // Giả lập thời gian trễ 3 giây
    await Future.delayed(Duration(seconds: 3));
    
    print('Hành động hoàn thành sau timeout');
  }
}

Trong ví dụ này, khi nút được nhấn, hàm thucHienHanhDongVoiTimeout được gọi. Bên trong hàm này, chúng ta sử dụng await Future.delayed(Duration(seconds: 3)) để tạo một thời gian trễ 3 giây. Sau thời gian trễ, hành động được hoàn thành.

Bạn có thể thay thế hành động bên trong hàm thucHienHanhDongVoiTimeout bằng hoạt động mong muốn. Cơ chế timeout này có thể hữu ích khi bạn muốn trì hoãn một hành động mà không chặn luồng giao diện người dùng.

Hãy lưu ý rằng nếu có bất kỳ cập nhật hoặc gói mới nào liên quan đến timeouts trong Flutter sau khi tôi cập nhật cuối cùng, bạn có thể xem xét các tùy chọn đó.