- 467
- 139 118
Tech Stack Nation
United States
เข้าร่วมเมื่อ 6 พ.ค. 2020
Tech Stack Nation is a free, private community for developers and software architects.
Formerly Angular Nation, now welcoming devs from all Tech Stacks (including Angular!).
Beginners and Introverts are always welcome here! 🥰
🥺 Are you tired of doom scrolling but still interested in tech updates?
🧐 Have you outgrown video tutorials and need something more interactive?
😢 Do you miss conference camaraderie and hallway track networking?
🥰 You've come to the right place!
Formerly Angular Nation, now welcoming devs from all Tech Stacks (including Angular!).
Beginners and Introverts are always welcome here! 🥰
🥺 Are you tired of doom scrolling but still interested in tech updates?
🧐 Have you outgrown video tutorials and need something more interactive?
😢 Do you miss conference camaraderie and hallway track networking?
🥰 You've come to the right place!
Ali with the Assist! w/ Lars and Alex | Angular Study Group #v19Resource
New in Angular v19 - Experimental Resource API 🔥
Lars Found a Bug 🐞🤓 Spoiler Alert - Alex already fixed it! 🥳🥰
Want to join cozy live calls with friendly tech experts where questions and participation are welcome and encouraged? You can sit with us! 🥰
Found this video helpful? Make sure to Like 👍 and Subscribe 🔔 to let us know you want to see more content like this. Even better, come join our architect study groups so you can participate in discussions like this! 😎
👉 techstacknation.com/ is the place for innovative developers and software architects to network and collaborate, and you're invited. 🥰
Big thanks to our community sponsor, AG Grid, for helping us create a place with live events for developers and architects to connect and collaborate. ❤️
#angular #react #vue #javascript #typescript #rxjs #observable
Lars Found a Bug 🐞🤓 Spoiler Alert - Alex already fixed it! 🥳🥰
Want to join cozy live calls with friendly tech experts where questions and participation are welcome and encouraged? You can sit with us! 🥰
Found this video helpful? Make sure to Like 👍 and Subscribe 🔔 to let us know you want to see more content like this. Even better, come join our architect study groups so you can participate in discussions like this! 😎
👉 techstacknation.com/ is the place for innovative developers and software architects to network and collaborate, and you're invited. 🥰
Big thanks to our community sponsor, AG Grid, for helping us create a place with live events for developers and architects to connect and collaborate. ❤️
#angular #react #vue #javascript #typescript #rxjs #observable
มุมมอง: 86
วีดีโอ
Lars Found a Bug! 🐞 Angular's v19 Experimental Resource API #WeLearnTogether | TechStackNation.com
มุมมอง 1527 ชั่วโมงที่ผ่านมา
Spoiler Alert - Alex Rickabaugh already fixed it! 🥳🥰 Want to see the longer version of this discussion, including more details from Lars about the new Stream Aggregate Resource? Check it out today, free! on TechStackNation.com. 🥰 Want to join cozy live calls with friendly tech experts where questions and participation are welcome and encouraged? You can sit with us! 🥰 Found this video helpful? ...
Eliminating ANY in TypeScript #WeLearnTogether | TechStackNation.com
มุมมอง 152วันที่ผ่านมา
Want to join cozy live calls with friendly tech experts where questions and participation are welcome and encouraged? You can sit with us! 🥰 Found this video helpful? Make sure to Like 👍 and Subscribe 🔔 to let us know you want to see more content like this. Even better, come join our architect study groups so you can participate in discussions like this! 😎 👉 techstacknation.com/ is the place fo...
Support for Angular Enterprise Architect Leads 💪😎🌟 Architect Spotlight w/ Ali 🤩 | #WeLearnTogether 🥰
มุมมอง 71วันที่ผ่านมา
Support for Angular Enterprise Architect Leads 💪😎🌟 Architect Spotlight w/ Ali 🤩 | #WeLearnTogether 🥰
Where Enterprise Angular Architects & Team Leads Can Learn and Grow 💪😎 Architect Spotlight w/ Ali 🤩
มุมมอง 12414 วันที่ผ่านมา
Where Enterprise Angular Architects & Team Leads Can Learn and Grow 💪😎 Architect Spotlight w/ Ali 🤩
Powerful New Chart Features with Mana Peirov from AG Grid 💪😎
มุมมอง 4714 วันที่ผ่านมา
Powerful New Chart Features with Mana Peirov from AG Grid 💪😎
Using Canvas to Make the Fastest JavaScript Grid in the World w/ Mana Peirov, AG Grid ⏱🌟
มุมมอง 4514 วันที่ผ่านมา
Using Canvas to Make the Fastest JavaScript Grid in the World w/ Mana Peirov, AG Grid ⏱🌟
Best Way to Learn Advanced Angular | Architects Study Group | #WeLearnTogether | TechStackNation.com
มุมมอง 20014 วันที่ผ่านมา
Best Way to Learn Advanced Angular | Architects Study Group | #WeLearnTogether | TechStackNation.com
How to Gain Street Cred in Tech | Architect Spotlight: Andy | #WeLearnTogether | TechStackNation.com
มุมมอง 2814 วันที่ผ่านมา
How to Gain Street Cred in Tech | Architect Spotlight: Andy | #WeLearnTogether | TechStackNation.com
"You're Probably Doing Something Wrong" 🚫 Angular's Advanced APIs | v19 Watch Party | Mark Thompson
มุมมอง 10114 วันที่ผ่านมา
"You're Probably Doing Something Wrong" 🚫 Angular's Advanced APIs | v19 Watch Party | Mark Thompson
How to Easily Configure New Financial Charts w/ Mana Peirov, AG Grid 📊🤩
มุมมอง 2914 วันที่ผ่านมา
How to Easily Configure New Financial Charts w/ Mana Peirov, AG Grid 📊🤩
How Andy Prepared for Angular v19 | Architects Study Group | #WeLearnTogether | TechStackNation.com
มุมมอง 5021 วันที่ผ่านมา
How Andy Prepared for Angular v19 | Architects Study Group | #WeLearnTogether | TechStackNation.com
Next Level Data Visualisation with New Features from AG Grid! 🔥
มุมมอง 2821 วันที่ผ่านมา
Next Level Data Visualisation with New Features from AG Grid! 🔥
"You're Probably Doing Something Wrong" 🚫 Angular's Advanced APIs | v19 Watch Party | Mark Thompson
มุมมอง 11921 วันที่ผ่านมา
"You're Probably Doing Something Wrong" 🚫 Angular's Advanced APIs | v19 Watch Party | Mark Thompson
Meet Andy Man, Man with a Plan 😎 | Architects Study Group | #WeLearnTogether | TechStackNation.com
มุมมอง 3521 วันที่ผ่านมา
Meet Andy Man, Man with a Plan 😎 | Architects Study Group | #WeLearnTogether | TechStackNation.com
Angular Team Responds to Chrome's New Observable API | Architects Study Group | We Learn Together 🔥
มุมมอง 41921 วันที่ผ่านมา
Angular Team Responds to Chrome's New Observable API | Architects Study Group | We Learn Together 🔥
Power of Career Connections | Advice from Danny | Architect Study Group
มุมมอง 3521 วันที่ผ่านมา
Power of Career Connections | Advice from Danny | Architect Study Group
Where Can We Find the New Observable API in Chrome? 🔥🤩 w/ Dominic Farolino #WeLearnTogether
มุมมอง 64หลายเดือนก่อน
Where Can We Find the New Observable API in Chrome? 🔥🤩 w/ Dominic Farolino #WeLearnTogether
Exciting Chart Updates with Mana Peirov from AG Grid! 🔥
มุมมอง 54หลายเดือนก่อน
Exciting Chart Updates with Mana Peirov from AG Grid! 🔥
Crowd Sourcing Architect Confidence w/ Danny Andersen | #WeLearnTogether
มุมมอง 22หลายเดือนก่อน
Crowd Sourcing Architect Confidence w/ Danny Andersen | #WeLearnTogether
"Roasting" RxJS Goat Ben Lesh 🔥😂🥰 w/ Chrome & Angular Friends
มุมมอง 198หลายเดือนก่อน
"Roasting" RxJS Goat Ben Lesh 🔥😂🥰 w/ Chrome & Angular Friends
ELI5: SSR & Hydration with Jessica Januik, Angular Team 🤩🌟 #WeLearnTogether | TechStackNation.com
มุมมอง 280หลายเดือนก่อน
ELI5: SSR & Hydration with Jessica Januik, Angular Team 🤩🌟 #WeLearnTogether | TechStackNation.com
2/2 Understanding Custom Operators in New Observable API w/ Lars Hanisch
มุมมอง 91หลายเดือนก่อน
2/2 Understanding Custom Operators in New Observable API w/ Lars Hanisch
1/2 Understanding Custom Operators in New Observable API w/ Lars Hanisch
มุมมอง 85หลายเดือนก่อน
1/2 Understanding Custom Operators in New Observable API w/ Lars Hanisch
After Render Effect in v19: Let's Ask the Angular Team! w/ Alex & Pawel | Architects Study Group 🤓
มุมมอง 320หลายเดือนก่อน
After Render Effect in v19: Let's Ask the Angular Team! w/ Alex & Pawel | Architects Study Group 🤓
Better Than AI! Our Interactive Search Engine for Architects 🤓 | Architect Spotlight: Lars Hanisch 😎
มุมมอง 70หลายเดือนก่อน
Better Than AI! Our Interactive Search Engine for Architects 🤓 | Architect Spotlight: Lars Hanisch 😎
Unique Professional Architect Study Groups | Architect Spotlight: Danny Andersen | #WeLearnTogether
มุมมอง 33หลายเดือนก่อน
Unique Professional Architect Study Groups | Architect Spotlight: Danny Andersen | #WeLearnTogether
Chrome's New Observable API w/ Dominic Farolino 🔥🤩 | #WeLearnTogether at TechStackNation.com
มุมมอง 707หลายเดือนก่อน
Chrome's New Observable API w/ Dominic Farolino 🔥🤩 | #WeLearnTogether at TechStackNation.com
Angular + Chrome Teams Discuss the Future of Observables 🤓 | #WeLearnTogether at TechStackNation.com
มุมมอง 525หลายเดือนก่อน
Angular Chrome Teams Discuss the Future of Observables 🤓 | #WeLearnTogether at TechStackNation.com
New in Chrome: Observable API w/ Dominic Farolino, Chrome Team | TechStackNation.com
มุมมอง 280หลายเดือนก่อน
New in Chrome: Observable API w/ Dominic Farolino, Chrome Team | TechStackNation.com
John wick is coming
DefaultValue on resource! Yes!!! 😂
Awesome!
Appreciate the detailed breakdown! Just a quick off-topic question: I have a SafePal wallet with USDT, and I have the seed phrase. (alarm fetch churn bridge exercise tape speak race clerk couch crater letter). What's the best way to send them to Binance?
Love your attitude, and your enthusiasm is contagious. Vision and knowledge accepted from all places, 0 ego and teamwork behavior. Wish you all the success in the world <3 !
thank you so much
linkedSignal is one of my favourite building blocks. Way better than computed!
Proud to be in Ali’s team 🎉❤
My maan🎉🎉
Stucked for solution for this pattern problem. Implement using untracked effect but now i understood how i can achieve the same with computed. Thanks Was thinking of linkedSignal as well
Andy , I used to play the same game too and also went for programming
This was very helpful! Thank you so much 😄
what about required inputs? when i try to create a signal that is based from an input that is required, i get an error 'Input is required but no value is available yet'. any ideas how to correct this implementation?
Creating new signals in computed looks really bad to me. I won't do this.
You misspelled badass
I don’t use effects.. but his example problem where he said “ok, but now options is an input that someone is binding into us..” then shows us how people’s solution is to add an effect in the constructor.. IMO that’s over engineering. The simple solution is just a getter and setter.
The unsubscribe should be a method that handles using abort control under the hood as an implementation detail...
where we can find this presentation the video is sooooo coool
Very cool, this will hopefully allow new libraries to build on top of this rather than the myriad of observable implementations out there.
There is one issue: if myName is set to 1 by a parent and child overrides it later, then if parents want to override it again with 1 since myName is now having a different overriden value, it will not work, signal are not allowed to be set with same value even if you set equal: (a,b) => false I will not be an issue when using objecr refereances
Heheh , I have been there
I assume the upcoming linkedSignal in v19 will be a better alternative to this approach?
@@nathanaelmayne5424 yes exactly!
when you select index doesn't it recalculates state because state is not dependent only on options but also on index? so when you select index it recalculates and sets back index to -1 Also why: name = input('') myName = computed(()=> signal(this.name())) instead of public myName = computed(()=> this.name())
Because he wants to be able to override the name at the component level, which you can't do with a computed.
@@wartab jeezzz... do you understand what's happening there? I'm not talking about what he wants - i understand what he wants. I'm talking about bug in his computed implementation. When options changes he want to reset index to -1. He don't want to reset index to -1 when index changes - but that's what will happen. Since computed depend on index and options then when he do select(idx: number) then it changes index to selected index and then computed is recalculated(because index changed and computed depends on index) and index is set back to -1 and that's not what he wants - that's bug in his implementation with computed.
I don’t get this. I just use Rxjs. I’m assuming there is more complexity involved in reactive programming or something.
They solve different issues. Signal is made to hold a value, while RxJS is not (because it's a stream). Angular signals make it easier to manage change detection
I ❤ Types!
They ❤️ you too Lars! 😂🤣
This information was just what I needed!
This is a really great explanation of real world effects use cases.
Love to my fellow Brit, great content.
I think the biggest issue with signals (but this could apply to every other feature/framework) is that the documentation doesn't provide (sufficient) examples for how the feature is solving the most common problems it's supposed to solve, or how it integrates with other existing features, how are they supposed to operate together. At this point, the feeling is that this whole signal thing, although theoretically it looks promising/life saver, there are still a lot of disconnects in regards to the usage patterns, integration with other concepts/features.
Valid point Adrian! I think one challenge is that Angular was originally created as an internal tool for Google and shared with the open source community as an afterthought. Although the humans on the Angular team love the external Angular community (and we love them too), I don't think Google allocates resources for external documentation as much as we would like because the primary "clients" of the Angular team today are still internal Google teams. Fun fact! Did you know that the Angular docs already contain thousands of pages that need to be maintained and updated? It's a slippery slope! 😅 That's one reason why the Angular team has a family of volunteer Google Developer Experts, we are here to learn from the Angular team and help pass along consistent best practices to the community. That said, no one explains this stuff better than Alex Rickabaugh which is why we're so grateful when he makes time for us to have live discussions. Super helpful for us to ask him specific questions and repeat what he said back to him so he can elaborate and clarify when we're confused. Getting the architecture right becomes increasingly important at enterprise scale and affects performance, deadlines, cost, security and stability of the entire repo. Incidentally, enterprise scale is where Angular shines so we can assume that most teams committing to Angular are dealing with large applications. Creating samples or tutorials for every possible use case seems impossible even with help from GDEs or more budget for docs. With millions of external Angular developers, there would be many unique implementations and edge cases. This is true not only for Angular but for all open source projects, that's why Tech Stack Nation was created! 🤓 We host live office hours with an Angular GDE several times a week as well as frequent live discussions with the Angular team and other leading open source experts. Rather than creating demos for every possible scenario, you can come and talk to us about what you're working on. If we can't help you, well...we know who to ask! 😉🥰 #WeLearnTogether
What is the MD tool being used?
hackmd.io/
I can't wait to watch the full video of this subject or BehaviorSubject. 🙃
I had the same problem but from the first time Alex started writing 'compu' I immediatly though of signal object used as a state approach. Signals are, to me, amazing and natural while RxJs is still a nightmare for my brain after so long haha! Thanks TSN for the great content and discussions!
Thanks Mo for the lovely comment! Be sure to say hello if you join our community, would be great to see you in our live calls! ~Bonnie 🥰
I think the videos before were pretty straightforward, but perhaps some rethinking about how it was said will get more people to understand. Just for my own sanity, here is how I understand it: If the state of a object A changes, and the state of other objects (eg; B, C, D) depend on the state of object A, give objects B, C and D nice, new, fresh state, based on the new state of object A. Did I get that right?
If you have writable signals which depend on another signal (e.g. a selected index from a list) you should think about nested signals. ⛄️
I also like to repeat back what I heard to make sure I heard it correctly, as you can see Alex often corrects me which is a big help to make sure I understand. Alex visits often so we will talk more about this, helps a lot for us to try out dev previews and meet him again for follow up questions. I see Lars also replied, he joined our study group after the last video so he was with us in the live call with Alex when this video was recorded, he's friendly and knowledgable about Angular so he's also a good guy to listen to. You're asking great questions too, hope we see you inside! #WeLearnTogether
@@techstacknation It's great to not only watch these videos "after the fact" but to be "live" at the event. Can recommend! 👍 I need to get used to actually talk to the "famous" people on the stream I "know" from TH-cam, because in the past I was just a viewer - distinguishing between "live" and "recording" needs practice. 🤣
What a tease.
I like that the community is using Google TH-cam for advertisement and lead magnets to sign up to the Tech Nation platform. It’s a way of owning and controlling your content away from Big Tech.
Thanks @@GuillermoArellano, you're exactly right! Our TH-cam videos are often just short clips of our ongoing discussions. There are more videos available exclusively for members of our free community, with the option to upgrade by joining our premium study group for immediate access to all our past and upcoming videos. Even better, joining our exclusive study group means that you can be in our live calls rather than watching later on youtube! 🥰
Is this not a full video?
Full video is about an hour long and available for free without ads on TechStackNation.com!
I like that the community is using Google TH-cam for advertisement and lead magnets to sign up to the Tech Nation platform. It’s a way of owning and controlling your content away from Big Tech.
I guess a more interesting question is: how to handle http calls when a signal changes? There isn't a pattern defined for this one yet. Either you do it with toObservable -> http.get -> toSignal or using an effect in which you http.get and then do .set(result) - exactly what you suggested to void. Neither of the options are clean IMHO.
toObservable uses an effect under the hood. But what you have to keep in mind is, that you may not get all values that are set into that signal. You only get the last value whenever the effect is scheduled by the framework. When you really want to react to an event (like button click, input change etc.) you should use that as a source (through an observable, of course 😂).
@@larshanisch Agree! Speaking of Input, I think what would have been nice is if it could have behaved like FormControl (or BehaviorSubject for that matter) - from which you can either get the current value (snapshot) or the stream of changes, so that you can react granularly (e.g. make http requests), or even convert it to signal if you plan to further derive it. I know, you can do what I said with the old @Input and ngChanges, with an additional BehaviorSubject - but it would have been nicer to have a better (cleaner, more uniform) integration.
@@adrianspiridon old @Input only fires once in ngOnChanges, because "expression changed after check" 😄 I think of signals/toObservable as "automatic debounce". And I haven't had a situation where I got bitten by this. After all the rendering of a template is also an effect, so the bound signals are only read at specific timings. They are no events on every level... Most of the times I start requests either on clicks/submits or valueChanges of forms. So I'm fine!
Hmm, interesting. In most of the cases I run into, signals changing should not be the trigger to fetch data, instead that should be at the end of the stream created by an event (if we use unidirectional state patterns, which we should). What should trigger the http call is a user action, a route change, or some other event. So the event is the trigger, then process that action doing whatever you need, and at the end of it, change the state (similar to flux/redux pattern). Of course we will run in the situation you describe for example when a component input changes, then we need to react to that change, which is triggered by a signal change.. In those cases I use ngOnChanges, but in the Standalone Component RFC they say that they will remove this hook and instead recommend to use effect 🤷♂ I guess we are in the middle of a paradigm change and things need to settle down...
@@codeSurvivor You're right, we're in the middle of discovering new patterns with all these things. I really like using signals inside the template, but I wonder if implementing inputs as signals was the right way - maybe they should've been more like observables as the new output are. If I need to react to changes on inputs (and we all should do) then I just use toObservable (which uses an effect under the hood). After all signals have the advantage that they are in sync (if multiple inputs change at the "same" time). If I need to combine them into a stream, I first "computed" them into the thing I want to stream (so I'm glitch-free) and after that I use toObservable, so I don't have to use combineLatest or similar.
So instead of make it explicitly an effect, you put it in an object which has a signal in it and return that object as a computed value, and by that design the index-signal gets reset every time the options change. So it is still an effect of changing the value of the options, but then hidden within a (not so obvious imo) code construction. And for this to work you also have to wrap 'normal class properties' in another object (in this case called 'state'). In my opinion this looks more as a workaround than intentional. And now the signal for the index gets thrown away and the signal for the options is not, why is that a logical thing to do? why is it logical to recreate signals?
So, what’s the solution?
While this approach works, it seems more like a workaround. Because overall what we are doing is finding a way to set a computed which is not the intended usage. Best scenerio would be that computed are made settable, then we avoid a workaround and things like `signal()()` All these point to a tool that requires we workaround its rules of usage for it to cater to our basic needs
Yep, I agree. The terminology alone is confusing. We're talking about something that is meant to be "computed"(), e.g. it's calculated, based on other inputs, but here it's not always computed, because we're sometimes setting parts of it manually. I don't think that'll ever feel right to me :D
@@delie32 This means linkedSignals is the angular teams final solution?
10:22 I actually had this glitch problem in my unit tests. And I "fixed" it by used TestBed.flushEffects() to have the ffects run. And I actually thought that Angular had the same issue and introduced it for that usage, but probably I was using effetcs wrong. Darn it.
I like this and I'm okay with this (creating a signal inside a computed is so cool!) but please don't remove the ability to set signals inside of effects lol. There's not a good way to enforce it because you can very very easily write the sets inside of a queueMicrotask (at least I'm 99% sure) and reactive systems cannot track that right now, cause it'll push that logic to happen after the current stack frame (wrapped in the current signal context) is done. Having experimented a bunch with Vue over the weekend, their reactivity APIs are significantly nicer because they give you the ability to shoot yourself in the foot with setting signals inside of effects. There are a lot of things that you can do with effects that you can't just do with computeds, especially when needing to write wrappers to turn other data types from other libraries into a signal.
don't think they will remove the option to set signal inside effect. probably they'll just remove the necessity of putting an {allowsignalWrite: true} option. they will make it as default if im not wrong
I was shocked by `effect` not running syncronously in the same frame as the signal's set operation. I thought all computeds and effects ran syncronously. Why on Earth is it not?
Have seen people using the input transform function as a setter. Would be interested in your opinion on that approach. I have used it myself and it works well but I can't shake the feeling it is a bit of a hack. Also rather than using allowSignalWrites I tend to use the untracked function. Agree that it's best not to use effects and I do my best to avoid it if I can, like I avoid manually subscribing in RXJS.
I had these desync states with so many tables and data models at work. I really really hated it. Using layers of components and having 3-4 different table components just so someone else thinks they fixed it was insane. It showed that nobody at my office knew how exactly rxjs works. When I did a prototype with something simpler like svelte everyone just yelled at me saying omg its just another framework. Bro you don't even use the one you have properly. either learn the tools and have standard way with your team or use something simpler.
I'm not entirely sure, but this approach seems like it could lead to a memory leak in the HTML. With each tick of the computed function, a new signal instance is returned. This means the HTML has to subscribe to each new instance. But what happens to the previous signal? From the framework's perspective, I don't see any mechanism to stop observing the old signals until the component is destroyed. As a result, the number of subscribers might increase with each tick of the computed function, leading to a potential memory leak. Please correct me, if I wrong.
The thing is that those subscriptions are not the same as rxjs subscriptions, in the sense that you have to make sure to unsubsribe from them. When the computed runs, the signal previously created inside it is automatically 'disposed', removing it as 'dependecy' of any reactivity depending on it.
what a beatiful solution <3
If I have a mat-table and a mat-sort I need to use viewChild to get the mat-sort, then assign it to a datasource - effect seems to be the right thing here. Because a data source doesn't seem right to recreate if things change when it has properties to update.
Excellent question zzing! If you'd like to create a quick stackblitz and post a link here, I can show it to Alex next time he stops by or, even better, you can join us on TechStackNation.com and ask him yourself! #YouCanSitWithUs 🥰
The zero-signal example seems a bit misleading. It's not working because of @let, it's working because you're checking against null, whereas you don't do that in the first if-block.
This is a simple and elegant explanation on solving double source of truth problem. This will be extremely helpful to document the pattern in Angular official documentation show case what a better alternative to effect.❤
Great explanation, thank you!
video quality is bad, the code is barely readable.
Thanks for the feedback Mr. Ilya, we've uploaded it again with a higher resolution 👉 th-cam.com/video/7BAIyJ8O2x4/w-d-xo.html 🥰
So there's one case which I haven't found an effect free solution for and it is regarding triggering outputs, depending on certain signal values... Is there anything I could do to get rid of the effect, e.g.: number = signal(0); isEven = output(true); effect(() => { this.isEven.emit(this.number() % 2 === 0); });
Though using `effect` under the hood you could use `toObservable` together with `outputFromObservable` here with: isEven = outputFromObservable(toObservable(this.number));