mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
65 lines
1.5 KiB
JavaScript
Executable file
65 lines
1.5 KiB
JavaScript
Executable file
/*!
|
|
* async.js
|
|
* Copyright(c) 2010 Fabian Jakobs <fabian.jakobs@web.de>
|
|
* MIT Licensed
|
|
*/
|
|
|
|
define(function(require, exports, module) {
|
|
|
|
var async = require("asyncjs/async")
|
|
|
|
async.plugin({
|
|
delay: function(delay) {
|
|
return this.each(function(item, next) {
|
|
setTimeout(function() {
|
|
next();
|
|
}, delay)
|
|
})
|
|
},
|
|
|
|
timeout: function(timeout) {
|
|
timeout = timeout || 0
|
|
var source = this.source
|
|
|
|
this.next = function(callback) {
|
|
var called
|
|
var id = setTimeout(function() {
|
|
called = true
|
|
callback("Source did not respond after " + timeout + "ms!")
|
|
}, timeout)
|
|
|
|
source.next(function(err, value) {
|
|
if (called)
|
|
return
|
|
|
|
called = true
|
|
clearTimeout(id)
|
|
|
|
callback(err, value)
|
|
})
|
|
}
|
|
return new this.constructor(this)
|
|
},
|
|
|
|
get: function(key) {
|
|
return this.map(function(value, next) {
|
|
next(null, value[key])
|
|
})
|
|
},
|
|
|
|
inspect: function() {
|
|
return this.each(function(item, next) {
|
|
console.log(JSON.stringify(item))
|
|
next()
|
|
})
|
|
},
|
|
|
|
print: function() {
|
|
return this.each(function(item, next) {
|
|
console.log(item)
|
|
next()
|
|
})
|
|
}
|
|
})
|
|
|
|
})
|