import com.github.nylle.javafixture.Fixture; import java.util.concurrent.TimeUnit; import java.util.function.Supplier; public class DebounceExample { private static final Fixture fixture = new Fixture(); public static void main(String[] args) { Supplier<String> searchSupplier = () -> { String keyword = fixture.text().characters(10).build(); }; Supplier<String> debouncedSearchSupplier = Debounce.debounce(searchSupplier, 500, TimeUnit.MILLISECONDS); simulateUserInput(debouncedSearchSupplier); } private static void simulateUserInput(Supplier<String> debouncedSearchSupplier) { for (int i = 0; i < 10; i++) { try { Thread.sleep(fixture.random().nextInt(300)); } catch (InterruptedException e) { e.printStackTrace(); } String keyword = fixture.text().characters(1).build(); String searchResult = debouncedSearchSupplier.get(); System.out.println(searchResult); } } } <dependency> <groupId>com.github.nylle</groupId> <artifactId>debounce</artifactId> <version>1.0</version> </dependency> gradle dependencies { implementation 'com.github.nylle:debounce:1.0' }


上一篇:
下一篇:
切换中文