import { delayFunction } from './delayFunction.js'
const delayedFunction = delayFunction({
fn: () => {},
ms: 10,
})
delayedFunction.cancel() Something abstracts delayFunction but exposes cancel method to the outside.
import { delayFunction } from './delayFunction.js'
const MILLISECONDS = 123
let delayedFunction
const doSomething = () => {
delayedFunction = delayFunction({
fn: () => {},
ms: MILLISECONDS,
})
}
export const cancelSomething = () => {
if (delayedFunction && delayedFunction.isDelayed()) {
delayedFunction.cancel()
}
} It works but there is an helper to do this called createDelayedFunctionController.
import { createDelayedFunctionController } from './delayFunction.js'
const MILLISECONDS = 123
const delayedFunctionController = createDelayedFunctionController()
const doSomething = () => {
delayedFunctionController.delay({
fn: () => {},
ms: MILLISECONDS,
})
}
export const cancelSomething = delayedFunctionController.cancel