Observable: some() method
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The some() method of the Observable interface returns a promise that fulfills with a boolean indicating whether any value emitted by the source observable satisfies the provided testing function.
Syntax
some(predicate)
some(predicate, options)
Parameters
predicate-
A function to execute for each value emitted by the source observable. It should return a truthy value to indicate the value passes the test, and a falsy value otherwise. The function is called with the following arguments:
optionsOptional-
An options object containing the following properties:
signalOptional-
An
AbortSignalthat can be used to cancel the operation. Aborting the signal unsubscribes from the source and rejects the promise with the signal'sreason. If the signal is already aborted, the promise rejects without subscribing to the source.
Return value
A Promise that fulfills with true as soon as predicate returns a truthy value, or false when the source completes without any value passing the test. If the source completes without emitting any values, the promise fulfills with false.
If the source errors or predicate throws an exception, the promise rejects with that error. If the operation is aborted, the promise rejects with the abort reason.
Description
Like other promise-returning operators, this method subscribes to the source immediately when called. It does not require a separate call to subscribe().
When predicate returns a truthy value, some() unsubscribes from the source without waiting for it to complete. If the source never completes and no value passes the test, the promise remains pending unless the operation errors or is aborted.
The return value of predicate is converted to a boolean without awaiting it. An async function returns a truthy promise object regardless of its eventual result, so it cannot be used as an asynchronous test.
If predicate throws an exception, the operation unsubscribes from the source.
Examples
>Using some()
This example checks whether Shift is held for any of the first three button clicks. It reports true as soon as a click passes the test, or false after all three fail. Click Restart after the stream ends to try again.
const btn = document.querySelector("button");
const output = document.querySelector("p");
const restart = document.querySelector("#restart");
function start() {
restart.disabled = true;
output.textContent = "Waiting for clicks";
btn
.when("click")
.take(3)
.some((event) => event.shiftKey)
.then((result) => {
restart.disabled = false;
output.textContent = result;
});
}
restart.when("click").subscribe(start);
start();
Specifications
| Specification |
|---|
| Observable> # dom-observable-some> |