require(["esri/core/scheduling"], (scheduling) => { /* code goes here */ });
import * as scheduling from "@arcgis/core/core/scheduling.js";
esri/core/scheduling
Various utilities and convenience functions for executing code at various phases of browser frames. The scheduling module allows you to register tasks that are executed in every animation frame. This can be used to synchronize updates with ongoing animations of the view, or to animate the view manually by adjusting the extent or camera in every frame.
// Animate the scene view camera heading in every frame
let handle = scheduling.addFrameTask({
update: function() {
let camera = view.camera.clone();
camera.heading += 0.2;
view.camera = camera;
}
});
// Remove frame task as soon as the user starts navigating in the view
reactiveUtils.whenOnce(() => view.navigating, () => handle.remove());
Method Overview
Name | Return Type | Summary | Object |
---|---|---|---|
Registers a frame task. | scheduling | ||
Schedules the execution of a | scheduling |
Method Details
-
addFrameTask
addFrameTask(phases){FrameTaskHandle}static
-
Registers a frame task. An animation frame is composed of different phases to let various actors execute code before, after, or during the rendering of MapView or SceneView.
Parameterphases PhaseCallbacksThe callbacks for each phase of the frame.
ReturnsType Description FrameTaskHandle A handle to remove, pause, or resume the frame task. Example// Animate the scene view camera heading in every frame let handle = scheduling.addFrameTask({ update: function() { let camera = view.camera.clone(); camera.heading += 0.2; view.camera = camera; } }); // Remove frame task as soon as the user starts navigating in the view reactiveUtils.whenOnce(() => view.navigating, () => handle.remove());
-
schedule
schedule(callback){Object}static
-
Schedules the execution of a
callback
function at the next web browser tick. Unlike addFrameTask, a scheduledcallback
will only run once. Scheduling a task for the next execution tick can be useful when you want to throttle/accumulate functionality over a single javascript execution context.Parametercallback FunctionThe function to call at the next tick.
ReturnsType Description Object Returns an scheduling handler with a remove()
method that can be called to prevent the callback to be called at the next tick.Property Type Description remove Function When called, removes the callback from the callbacks queue. Example// Use scheduling.schedule to log an error message at most once per tick let logErrorHandle; function logError(error) { if (!logErrorHandle) { logErrorHandle = scheduling.schedule(function() { console.error(error); logErrorHandle = null; }); } });
Type Definitions
-
FrameTaskHandle
FrameTaskHandle Object
-
An object to remove or pause a frame task registered with addFrameTask().
-
A function called at a specific phase of the animation frame.
Parameterevent PhaseEventoptionalAn object with timing information.
-
PhaseCallbacks
PhaseCallbacks Object
-
A set of callbacks that will be called at specific phases of the animation frame.
- Properties
-
prepare PhaseCallback
A callback called before rendering.
render PhaseCallbackA callback to execute rendering logic.
update PhaseCallbackA callback to execute state update logic.
-
PhaseEvent
PhaseEvent Object
-
An object with timing information.
- Properties