| Server IP : 68.183.124.220 / Your IP : 216.73.216.141 Web Server : Apache/2.4.18 (Ubuntu) System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : gavin ( 1000) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/npm/node_modules/async-some/ |
Upload File : |
var assert = require("assert")
var dezalgoify = require("dezalgo")
module.exports = some
/**
* short-circuited async Array.prototype.some implementation
*
* Serially evaluates a list of values from a JS array or arraylike
* against an asynchronous predicate, terminating on the first truthy
* value. If the predicate encounters an error, pass it to the completion
* callback. Otherwise, pass the truthy value passed by the predicate, or
* `false` if no truthy value was passed.
*/
function some (list, test, cb) {
assert("length" in list, "array must be arraylike")
assert.equal(typeof test, "function", "predicate must be callable")
assert.equal(typeof cb, "function", "callback must be callable")
var array = slice(list)
, index = 0
, length = array.length
, hecomes = dezalgoify(cb)
map()
function map () {
if (index >= length) return hecomes(null, false)
test(array[index], reduce)
}
function reduce (er, result) {
if (er) return hecomes(er, false)
if (result) return hecomes(null, result)
index++
map()
}
}
// Array.prototype.slice on arguments arraylike is expensive
function slice(args) {
var l = args.length, a = [], i
for (i = 0; i < l; i++) a[i] = args[i]
return a
}