1e41f4b71Sopenharmony_ci# LoopObserver
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciThe LoopObserver module defines an observer to listen for event processing timeout. It can be used as an input parameter in [ErrorManager.on](./js-apis-app-ability-errorManager.md#errormanageronerror) to listen for the event processing time of the current application's main thread.
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci> **NOTE**
6e41f4b71Sopenharmony_ci> 
7e41f4b71Sopenharmony_ci> The initial APIs of this module are supported since API version 12. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ci## Modules to Import
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci```ts
12e41f4b71Sopenharmony_ciimport { errorManager } from '@kit.AbilityKit';
13e41f4b71Sopenharmony_ci```
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci## LoopObserver.onLoopTimeOut
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_cionLoopTimeOut?(timeout: number): void
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ciCalled when a timeout occurs for the main thread to process an event in the JS runtime.
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci**Atomic service API**: This API can be used in atomic services since API version 12.
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Ability.AbilityRuntime.Core
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci**Parameters**
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci| Name| Type| Mandatory| Description|
28e41f4b71Sopenharmony_ci| -------- | -------- | -------- | -------- |
29e41f4b71Sopenharmony_ci| timeout | number | Yes| Actual execution time of the main thread.|
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci**Example**
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci```ts
34e41f4b71Sopenharmony_ciimport { errorManager } from '@kit.AbilityKit';
35e41f4b71Sopenharmony_ci
36e41f4b71Sopenharmony_cilet observer: errorManager.LoopObserver = {
37e41f4b71Sopenharmony_ci  onLoopTimeOut(timeout: number) {
38e41f4b71Sopenharmony_ci    console.log('Duration timeout: ' + timeout);
39e41f4b71Sopenharmony_ci  }
40e41f4b71Sopenharmony_ci};
41e41f4b71Sopenharmony_ci
42e41f4b71Sopenharmony_cierrorManager.on("loopObserver", 1, observer);
43e41f4b71Sopenharmony_ci```
44