Skip to content

Instantly share code, notes, and snippets.

@samzhao
samzhao / machine.js
Last active August 21, 2020 03:31
Generated by XState Viz: https://xstate.js.org/viz
// Available variables:
// - Machine
// - interpret
// - assign
// - send
// - sendParent
// - spawn
// - raise
// - actions
import isEmpty from 'lodash/isEmpty'
const retryIfEmpty = async (input): Promise<any> => {
const { request, timeout = 200, maxCalls = 6 } = input;
return new Promise(async (resolve, reject) => {
try {
const { data } = await request;
if (isEmpty(data)) {
@samzhao
samzhao / index.js
Last active June 30, 2018 03:59
Usage of delayedMap helper
const toListItem = async item => {
const { thing } = await sendRequest();
return thing;
};
const delayTime = 100;
const items = delayedMap(listOfStuff, toListItem, delayTime);
@samzhao
samzhao / index.js
Created June 30, 2018 03:58
Delayed map helper
const delayedMap = async (list, iterator, delayTime) => {
let promises = [];
for (const item of list) {
await delay(delayTime);
promises.push(await iterator(item));
}
return Promise.all(promises);
};
@samzhao
samzhao / index.js
Created June 30, 2018 03:50
Making async/await delay helper work in a loop
const delay = time =>
new Promise(resolve => setTimeout(resolve, time));
const list = new Array(10).fill();
for (let index of list.keys()) {
await delay(1000);
console.log(index);
}
@samzhao
samzhao / index.js
Created June 30, 2018 03:39
Bad example of using async/await for delaying calls in a loop
const delay = time =>
new Promise(resolve => setTimeout(resolve, time));
const list = new Array(10).fill();
list.forEach(async (_, index) => {
await delay(1000);
console.log(index);
});
@samzhao
samzhao / index.js
Created June 30, 2018 03:22
Delay with async/await
const delay = time =>
new Promise(resolve => setTimeout(resolve, time));
const sendRequest = async () => {
await delay(1000);
return axios.get(API_URL);
}
// request fires after 1 second
sendRequest();
@samzhao
samzhao / index.js
Last active June 30, 2018 03:20
Simple Async/await Example
import axios from 'axios';
const API_URL = "https://jsonplaceholder.typicode.com/posts/1";
// Before async/await
const logPostId = () => {
axios.get(API_URL)
.then(resp => {
const { data } = resp;
const { id } = data;
# load libraries
require 'rubygems' rescue nil
require 'wirble'
#require 'json'
alias q exit
class Object
def local_methods
(methods - Object.instance_methods).sort
set-option -g default-shell /bin/zsh
set-option -g default-terminal "screen-256color"
set-option -g base-index 1
setw -g pane-base-index 1
set-option -g xterm-keys on
setw -g aggressive-resize on
set -s escape-time 0