Skip to content

Instantly share code, notes, and snippets.

@crshmk
Last active November 21, 2018 19:13
Show Gist options
  • Save crshmk/685933c91959e58bc30892af4ed64d63 to your computer and use it in GitHub Desktop.
Save crshmk/685933c91959e58bc30892af4ed64d63 to your computer and use it in GitHub Desktop.
redux async structures
function fetcher(url) {
return fetch(url).then(res => res.json())
}
async function get(url) {
var result = await fetcher(url);
return result
}
get('https://jsonplaceholder.typicode.com/users')
.then(res => {console.log(res)})
.catch(err => {console.log(err)})
async function get(url) {
try {
let response = await fetch(url).then(res => res.json())
return {success: true, data: response }
} catch (e) {
return {success: false, data: e.message }
}
}
let url = 'https://jsonplaceholder.typicode.com/users'
let users = await get(url)
// {success: true, data: Array(10)}
let API = {
get: (url) =>
fetch(url)
.then(res => res.json())
.catch(err => err)
}
let mapDispatchToProps = dispatch => ({
getUsers: (url) => {
API.get(url)
.then(res => {dispatch(updateUsers(res))})
.catch(err => {dispatch(getUserError(err))})
}
})
// simulate in console
var dispatch = x => null
var updateUsers = res => {console.log('update users with data', res)}
var getUserError = err => {console.log('error is ', err)}
var props = mapDispatchToProps(dispatch)
props.getUsers('https://jsonplaceholder.typicode.com/users')
var get = (url) =>
fetch(url)
.then(res => res.json())
.catch(err => err)
var url = 'https://jsonplaceholder.typicode.com/users'
get(url).then(res => {console.log(res)}).catch(err => console.log(err))
@crshmk
Copy link
Author

crshmk commented Nov 20, 2018

@crshmk
Copy link
Author

crshmk commented Nov 21, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment