Skip to content

Instantly share code, notes, and snippets.

View wadez's full-sized avatar

Wade Zimmerman wadez

View GitHub Profile
@wadez
wadez / hell.js
Last active June 13, 2021 10:17
Notional example of callback hell
login.use(getLoginStrategies(function (db, session, done) {
var retrievedUsername;
var setUserName = function (a) {
retrievedUsername = a
}
var retrievedProfile;
var setProfile = function (a) {
retrievedProfile = a
}
var user = db.getUser(
for (var i = 0; i<numberOfThreads; i++) {
promises.push(new Promise(...))
}
Promise.all(promises)
Promise.any(promises) // handle the first fullfilment
Promise.race(promises) // handle the first settled
const pool = [0,1,2,3] // 4 threads available
while (pool.length && queue.length) {
var id = pool.pop();
promises.push(new Promise((...) => {
...
worker.on("exit", (...) => {
pool.push(id)
resolve()
})
...
while (...) {
var id = pool.pop();
promises.push(new Promise((...) => {
...
const halt = (reason) => {
pool.push(id)
reject(reason)
}
...
})
while (...) {
promises.push(new Promise((...) => {
...
const halt = (reason) => {
fatalPromises.push(new Promise((...) => {
Promise.allSettled(workers.map(w => w.terminate()))
.then(() => {
resolve2(reason)
})
}))
const Pool = require("jpool")
const path = require("path")
var jobs = 30;
const pool = new Pool({threads: 8})
for (var i = 0; i < jobs; i++) {
pool.add(path.resolve(__dirname, 'jobs/findRandomNumber.js'))
}
const {parentPort, workerData} = require("worker_threads");
var start = new Date();
const interval = setInterval(() => {
var number = Math.random()
var end = new Date();
var diff = (end - start) / 1000
var secs = Math.floor(diff * 100) / 100
if (number > 0.9) {
parentPort.postMessage(`found ${number} after ${secs} seconds`)
const express = require('express')
const app = express()
const Pool = require('jpool');
// middleare
app.use((req, res) => {
const pool = new Pool();
req.job = (filename) => {
pool.add(path.resolve(__dirname, `jobs/${filename}.js`), req)
@wadez
wadez / tailwind-divide.html
Created December 19, 2021 01:59
how to get boostrap list with tailwind
<ul class="divide-y border">
<li class="p-3">a</li>
<li class="p-3">b</li>
<li class="p-3">c</li>
<li class="p-3">d</li>
</ul>