first commit
This commit is contained in:
55
app_vue/node_modules/thunky/index.js
generated
vendored
Normal file
55
app_vue/node_modules/thunky/index.js
generated
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
'use strict'
|
||||
|
||||
var nextTick = nextTickArgs
|
||||
process.nextTick(upgrade, 42) // pass 42 and see if upgrade is called with it
|
||||
|
||||
module.exports = thunky
|
||||
|
||||
function thunky (fn) {
|
||||
var state = run
|
||||
return thunk
|
||||
|
||||
function thunk (callback) {
|
||||
state(callback || noop)
|
||||
}
|
||||
|
||||
function run (callback) {
|
||||
var stack = [callback]
|
||||
state = wait
|
||||
fn(done)
|
||||
|
||||
function wait (callback) {
|
||||
stack.push(callback)
|
||||
}
|
||||
|
||||
function done (err) {
|
||||
var args = arguments
|
||||
state = isError(err) ? run : finished
|
||||
while (stack.length) finished(stack.shift())
|
||||
|
||||
function finished (callback) {
|
||||
nextTick(apply, callback, args)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function isError (err) { // inlined from util so this works in the browser
|
||||
return Object.prototype.toString.call(err) === '[object Error]'
|
||||
}
|
||||
|
||||
function noop () {}
|
||||
|
||||
function apply (callback, args) {
|
||||
callback.apply(null, args)
|
||||
}
|
||||
|
||||
function upgrade (val) {
|
||||
if (val === 42) nextTick = process.nextTick
|
||||
}
|
||||
|
||||
function nextTickArgs (fn, a, b) {
|
||||
process.nextTick(function () {
|
||||
fn(a, b)
|
||||
})
|
||||
}
|
Reference in New Issue
Block a user