private DispatcherDelgate ApplyMiddlewares(params MiddlewareDelegate <TState>[] middlewares) { DispatcherDelgate dispatcher = InitialDispatcher; // Reverse apply middlewares for (var i = middlewares.Length - 1; i >= 0; --i) { var middleware = middlewares[i]; dispatcher = middleware(this)(dispatcher); } return(dispatcher); }
private static async Task FetchPosts(DispatcherDelgate dispatch, string subreddit) { dispatch(new RequestPosts() { subreddit = subreddit }); var client = new HttpClient(); var response = await client.SendAsync(new HttpRequestMessage(HttpMethod.Get, $"https://www.reddit.com/r/{subreddit}.json")); var json = await response.Content.ReadAsStringAsync(); dispatch(new ReceivePosts() { subreddit = subreddit, json = json }); }
private static IEnumerator FetchPosts(DispatcherDelgate dispatch, string subreddit) { dispatch(new RequestPosts() { subreddit = subreddit }); var request = UnityEngine.Networking.UnityWebRequest.Get($"https://www.reddit.com/r/{subreddit}.json"); yield return(request.SendWebRequest()); var json = request.downloadHandler.text; dispatch(new ReceivePosts() { subreddit = subreddit, json = json }); }
public Store(ReducerDelegate <TState> reducer, TState initialState = default(TState), params MiddlewareDelegate <TState>[] middlewares) { this.reducer = reducer; this.dispatcher = ApplyMiddlewares(middlewares); this.state = initialState; }