Skip to content

Instantly share code, notes, and snippets.

@davidchase
Last active December 10, 2016 16:21
Show Gist options
  • Save davidchase/d183ffbfa498f4606934d35599ce7977 to your computer and use it in GitHub Desktop.
Save davidchase/d183ffbfa498f4606934d35599ce7977 to your computer and use it in GitHub Desktop.
esnextbin sketch
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>ESNextbin Sketch</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css">
</head>
<body>
<input type="text" value="Some Value" class="inputy" />
</body>
</html>
import Task from 'data.task'
const tryCatch = function(f){
try {
return f()
} catch (err) {
return err
}
}
const promiseToTask = promise => {
return new Task((rej, res) => {
return promise.then(res).catch(rej)
})
}
const e = tryCatch(async() => await(await fetch('https://jsonplaceholder.typicode.com/users')).json())
promiseToTask(e).rejectedMap(e => 'oops').fork(console.warn, console.log)
{
"name": "esnextbin-sketch",
"version": "0.0.0",
"dependencies": {
"data.task": "3.1.1",
"babel-runtime": "6.20.0"
}
}
'use strict';
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
var _data = require('data.task');
var _data2 = _interopRequireDefault(_data);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var tryCatch = function tryCatch(f) {
try {
return f();
} catch (err) {
return err;
}
};
var promiseToTask = function promiseToTask(promise) {
return new _data2.default(function (rej, res) {
return promise.then(res).catch(rej);
});
};
var e = tryCatch((0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee() {
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return fetch('https://jsonplaceholder.typicode.com/users');
case 2:
_context.next = 4;
return _context.sent.json();
case 4:
return _context.abrupt('return', _context.sent);
case 5:
case 'end':
return _context.stop();
}
}
}, _callee, undefined);
})));
promiseToTask(e).rejectedMap(function (e) {
return 'oops';
}).fork(console.warn, console.log);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment