{"id":1294,"date":"2024-01-29T15:39:13","date_gmt":"2024-01-29T14:39:13","guid":{"rendered":"https:\/\/piatkosia.k4be.pl\/wordpress\/?p=1294"},"modified":"2024-01-29T15:40:52","modified_gmt":"2024-01-29T14:40:52","slug":"no-jak-to-nie-da-sie-asynchronicznie-w-konstruktorze","status":"publish","type":"post","link":"https:\/\/piatkosia.k4be.pl\/wordpress\/2024\/01\/29\/no-jak-to-nie-da-sie-asynchronicznie-w-konstruktorze\/","title":{"rendered":"No jak to nie da si\u0119 asynchronicznie w konstruktorze"},"content":{"rendered":"<p style=\"text-align: left;\">A no nie da, ale na\u00a0<a href=\"https:\/\/stackoverflow.com\/questions\/8145479\/can-constructors-be-async\" target=\"_blank\" rel=\"noopener\">stack overflow<\/a> znale\u017ali obej\u015bcie. Ca\u0142kiem zjadliwe<\/p>\n<pre>\r\npublic class ViewModel       \r\n{       \r\n    public ObservableCollection<TData> Data { get; set; }       \r\n\r\n    \/\/static async method that behave like a constructor       \r\n    async public static Task<ViewModel> BuildViewModelAsync()  \r\n    {       \r\n        ObservableCollection<TData> tmpData = await GetDataTask();  \r\n        return new ViewModel(tmpData);\r\n    }       \r\n\r\n    \/\/ private constructor called by the async method\r\n    private ViewModel(ObservableCollection<TData> Data)\r\n    {\r\n        this.Data = Data;   \r\n    }\r\n}  \r\n<\/pre>\n<p>Zostawiam, bo pewnie nie raz mi si\u0119 jeszcze przyda.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A no nie da, ale na\u00a0stack overflow znale\u017ali obej\u015bcie. Ca\u0142kiem zjadliwe public class ViewModel { public ObservableCollection Data { get; set; } \/\/static async method&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/piatkosia.k4be.pl\/wordpress\/2024\/01\/29\/no-jak-to-nie-da-sie-asynchronicznie-w-konstruktorze\/\">Lecim dalej<span class=\"screen-reader-text\">No jak to nie da si\u0119 asynchronicznie w konstruktorze<\/span> <i class=\"fas fa-angle-right\"><\/i><\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1294","post","type-post","status-publish","format-standard","hentry","category-bez-kategorii","entry"],"_links":{"self":[{"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/posts\/1294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/comments?post=1294"}],"version-history":[{"count":2,"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/posts\/1294\/revisions"}],"predecessor-version":[{"id":1296,"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/posts\/1294\/revisions\/1296"}],"wp:attachment":[{"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/media?parent=1294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/categories?post=1294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/piatkosia.k4be.pl\/wordpress\/wp-json\/wp\/v2\/tags?post=1294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}