RxJS 5 Observable: Is any outcome part of a recognized collection?

Currently, I am working with Typescript 1.9 and utilizing RxJS 5. My goal is to create an observable that will emit a single value: true if any of the values emitted by the inner Observable<number> belong to a predetermined array of numbers, and false otherwise. Below is the code snippet I have implemented:

let lookFor = [2,7]; // Known values to search for
Observable.from([1,2,3,4,5]) // Inner observable emits these dynamic values
    .first( 
        (d:number) => lookFor.find(id=>id===d)!==undefined,
        ()=>true 
    )
    .subscribe(
        res => console.log('Result: ',res),
        err => console.error(err),
        ()  => console.log('Complete')
    );

The above code functions as intended, outputting:

Result: true (since inner observable emits 2, which is found in lookFor)

Complete

If starting with Observable.from([8,9]), the desired outcome would be Result: false to indicate no overlap with lookFor. However, instead, the error handler is activated:

Object {name:"Empty Error", stack:""}

What is the correct approach to ensure my observable emits true upon finding a match, but emits false if no match is found throughout the stream?

Answer №1

You can also set a default value to be used if a match is not found by adding an extra parameter:

...
.first( //locates the first value that meets the criteria specified below
    (d:number) => lookFor.find(id=>id===d)!==undefined,
    ()=>true, //defines what to output when a match is found
    false //default value to output if no match is found
)
...

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

The 'style' property is not found within the 'EventTarget' type

Currently, I am utilizing Vue and TypeScript in an attempt to adjust the style of an element. let changeStyle = (event: MouseEvent) => { if (event.target) { event.target.style.opacity = 1; Although the code is functional, TypeScript consist ...

What is the correct way to extract results from an Array of Objects in Typescript after parsing a JSON string into a JSON object? I need help troubleshooting my code

Here is my code for extracting data from an array of objects after converting it from a JSON string to a JSON object. export class FourColumnResults { constructor(private column1: string, private column2: string, private column3: string, priv ...

How to toggle element visibility when hovering in Angular?

I've set up an angular material card that includes a close button (marked with an "x"). My goal is to initially hide the "x" button and only display it when hovering over the card. Here is the code snippet for the card: <mat-card> <mat- ...

The absence of a type in AnyAction is causing a TypeScript error in react testing

I ran into an issue and received the following error message: TS2345: Argument of type '(dispatch: Dispatch) => Promise<void>' is not assignable to parameter of type 'AnyAction'. Property 'type' is missing in type & ...

What is the best approach for arranging numbers in descending order?

I'm struggling to sort numbers from largest to smallest and need some help. My code successfully sorted numbers with 5 digits, but not the others. Here is a snippet of the unsorted numbers: 15366 13070 13069 13068 13067 13 ...

The entered type '{}' cannot be assigned to type 'Record<Key, Value>'

Here is my code snippet: const foo = <Key extends keyof any, Value>() { type Rec = Record<Key, Value> const a: Rec = {} } When I try to compile this code, TypeScript throws an error on the 3rd line stating that Type '{}' is not a ...

When implementing JSS with React and TypeScript, certain CSS properties may encounter a `type is unassignable` error

Recently delving into TypeScript, I've encountered an issue within my project that was created using create-react-app with TypeScript and incorporates JSS. It appears that certain CSS properties are causing errors. Specifically, the pointerEvents and ...

What is the best way to sequentially invoke methods in Angular?

When initializing in the ngOnInit() method, I need to call several methods synchronously. However, all these methods involve asynchronous calls to an API. The challenge is that certain variables must be set before proceeding with the subsequent methods. Un ...

Tips for identifying the most effective element locator in the DOM with Playwright

Currently, I am in the process of incorporating Playwright tests for a website that supports multiple locales. The majority of the page content is dynamically generated from CMS content (Contentful). I am hesitant about using hardcoded text locators like ...

Resetting Tabs in Child Component using React

Imagine having two intricate React components developed in TypeScript where one acts as a child component of the other. This child component consists of tabs and keeps track of its own state to determine which tab is currently selected: export const Clien ...

Astro encounters issues when using svelte-testing-library

I am in the process of developing a website with Astro and integrating it with Svelte. To test my project, I have included svelte-testing-library, which works perfectly when executed using npm test. However, after adding the component tests, running astro ...

Angular 2 offers a powerful feature called ngFor that allows developers to

Is there a way to allow users to enter keywords in an input field to filter items within a list of menu items dynamically without using ngModel? I need this to be done without the use of buttons as well. Any suggestions for a workaround? <div class=" ...

The validation through class-validator or class-transformer fails to function properly when applying multiple Types to the @Query decorator

Is there a way to combine multiple types with the @Query() decorator in my controller, such as ParamsWithRegex and PaginationParams? I'm facing an issue where no validation is being applied when I do that. How can I resolve this problem? **// MY CON ...

Conceal a specific segment on the web page if the API call in Angular does not return any data

I'm currently working with data retrieved through an API call and I need assistance in implementing code to hide a section when there is no data being fetched. Could you provide a sample code for this? ...

The error encountered states that in the Angular typescript method, the term "x" is not recognized as a

In my codebase, I have an entity named Epic which contains a method called pendingTasks() within a class. import { Solution } from '../solutions.model'; import { PortfolioKanban } from '../kanban/portfolio-kanban.model'; import { Kanban ...

Every time I click a button that triggers this.updateFn(...), I constantly encounter the error message indicating that this.updateFn(...) is not a function

In my current Angular project, I am attempting to call the following function: updateFn: () => (val: boolean) => void; I have tried invoking it like so: this.updateFn()(true); However, I consistently receive a this.updateFn(...) is not a function ...

Error in TypeScript: Unable to assign type 'string' to type 'number | ""'

I am new to TypeScript and struggling to comprehend the error message below. Type '{ order: string; }[]' is not compatible with type 'TestType[]'. Type '{ order: string; }' is not assignable to type 'TestType'. ...

What is the process for sending an email using Angular 5 to an endpoint in ASP.NET Core?

I am attempting to send an email with header information and email details included in the message body. Here is the code I have tried: The typescript. /// <summary> /// Sending an email to the client. /// </summary> sendEmail() { if (th ...

eliminate element from formBuilder

When I execute formBuild.group, I am creating two temporary values for validation purposes only. These values are not intended to be saved in the database, so I need to remove them before saving. profile.component.ts: profileForm: FormGroup; constructor ...

What are your thoughts on this method? Verifying the existence of a variable or setting it to

const pictureEntity = updateUserDto?.picture ? await this.filesService.find(updateUserDto.picture) : null; if (pictureEntity) { const url = await this.filesService.getFileUrl(pictureEntity); } Is the method used to assign the value to pictureEn ...