我正在聽一個事件,但是,我不想每次都列印該事件。每秒都會發送一個事件,但我不希望我的列印每秒都在作業。如果自上次事件以來已過去 10 秒,如何使此偵聽器內的列印僅觸發?
例如,我收到一個事件,我使用列印。我想將事件存盤在某個地方,如果自上次事件以來經過了 10 秒,則接受另一個事件 -> 列印等等。
_controller.onLocationChanged.listen((event) {
print(event);
});
uj5u.com熱心網友回復:
您可以嘗試與異步方法相關的東西。以下代碼將在 10 秒后將 _isListening 變數設定為 true,這將使偵聽器能夠再次執行它的操作。
class YourClass{
bool _isListening = true;
void yourMethod() {
_controller.onLocationChanged.listen((event) {
if(_isListening){
_isListening = false;
print(event);
Future.delayed(const Duration(seconds: 10)).then((_) => _isListening=true);
}
});
}
}
uj5u.com熱心網友回復:
使用定時器如下:
Timer(const Duration(seconds: 10), (){
print("...");
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/434603.html
