JSFiddle - React, Tailwind, and code Playground

by rexonms

JavaScript

// Chapter 3
// Some Now Some Later
console.clear()
const CURRENT_USER_ID = 1

function myTeslaAjax(url, data, callback) {
	setTimeout(() => {
  	console.log('a')
  	return callback({url, data})
  }, 1000)
}

function getPerson(data, cb) {
	partial(myTeslaAjax, 'http://myTesla.com/api/person', data => {
  console.log('here')
  	return cb(data)
  })
}

function getAward(data, cb) {
  return cb(partial(myTeslaAjax, 'http://myTesla.com/api/award'))
}

function getCurrentUser(cb) {
	return partial(getPerson,{user: CURRENT_USER_ID})  
}

function partial(fn, ...presentArgs) {
	return function partiallyApplied(...laterArgs) {
  	return fn( ...presetArgs, ...laterArgs)
  }
}

getPerson({'userId': 1}, cb => {
	console.log('getPerson', cb)
})