Từ Sync sang Async
Do các thay đổi trong V8, đội ngũ WebdriverIO đã thông báo sẽ loại bỏ việc thực thi lệnh đồng bộ (synchronous) vào tháng 4 năm 2023. Đội ngũ đã nỗ lực để làm cho quá trình chuyển đổi trở nên dễ dàng nhất có thể. Trong hướng dẫn này, chúng tôi sẽ giải thích cách bạn có thể dần dần chuyển đổi bộ test của mình từ sync sang async. Chúng tôi sử dụng Cucumber Boilerplate làm dự án mẫu, nhưng cách tiếp cận cũng tương tự với tất cả các dự án khác.
Promises trong JavaScript
Lý do tại sao việc thực thi đồng bộ đã phổ biến trong WebdriverIO là vì nó loại bỏ độ phức tạp của việc xử lý promises. Đặc biệt nếu bạn đến từ các ngôn ngữ khác nơi khái niệm này không tồn tại theo cách này, nó có thể gây nhầm lẫn lúc đầu. Tuy nhiên, Promises là một công cụ rất mạnh mẽ để xử lý mã bất đồng bộ và JavaScript hiện đại thực sự giúp việc xử lý nó trở nên dễ dàng. Nếu bạn chưa từng làm việc với Promises, chúng tôi khuyên bạn nên xem hướng dẫn tham khảo MDN vì việc giải thích về nó sẽ nằm ngoài phạm vi của bài viết này.