Assign value to parameter inside subscribe method
unknown
typescript
2 years ago
2.2 kB
14
Indexable
// Method execution inside Component export class MyComponent implements OnInit { moneyData!:any // This is the parameter I want to assign my value ! constructor( private myService: MyService) {} async ngOnInit() { await this.myService.getTasksByCategory(this.moneyData, 'money') // 'money' is the category name I want to query with) await console.log(this.money Data); // NOT WORKING! } } // My Service method which has parameter 'dataConsumer' export class MyService { getTasksByCategory(dataConsumer:any, category:string) { const daysFromThisWeek = this.getDaysFromThisWeek(); this.goalsService.goalsCollection() .pipe( map((goalsArr:any) => { goalsArr = goalsArr.filter((item:any) => item.category === category); return goalsArr; }), map((goalsArr:any) => { const goalsIDs = goalsArr.map((item:any) => item.id); return goalsIDs; }) ) .subscribe((goalsIDs:any) => { this.tasksService.tasksCollection() .pipe( // get category-matching-tasks map((tasksArr:any) => { let modArr = [] as any; goalsIDs.forEach((goalId:any) => { const forModArr = tasksArr.filter((task:any) => task.goal_id === goalId); modArr = modArr.concat(forModArr); }) return modArr; }), map(tasksArr => { // get number of category-matching-tasks on each week day let finalTasks = [] as any; daysFromThisWeek.forEach((day:any) => { const forFinalTasks = tasksArr.filter((task:any) => task.taskDate === day); finalTasks = finalTasks.concat(forFinalTasks.length); }) return finalTasks; }) ) // .subscribe(d => { // res = d; // }) .subscribe(async (finalTasks: Promise<any>[]) => { const completedTasks = await Promise.all(finalTasks); dataConsumer = completedTasks; // przypisz wartość do zmiennej wewnątrz subskrypcji } ) }) // Subscribe } }
Editor is loading...