util.xpcall for lua5.1;
This commit is contained in:
parent
124252bb12
commit
3f3f18dd72
8
rx.lua
8
rx.lua
@ -6,6 +6,12 @@ local util = {}
|
||||
|
||||
util.pack = table.pack or function(...) return { n = select('#', ...), ... } end
|
||||
util.unpack = table.unpack or unpack
|
||||
util.xpcall = function(fn, err, ...)
|
||||
local arg = util.pack(...)
|
||||
return xpcall(function()
|
||||
fn(util.unpack(arg))
|
||||
end, err)
|
||||
end
|
||||
util.eq = function(x, y) return x == y end
|
||||
util.noop = function() end
|
||||
util.identity = function(x) return x end
|
||||
@ -14,7 +20,7 @@ util.isa = function(object, class)
|
||||
return type(object) == 'table' and getmetatable(object).__index == class
|
||||
end
|
||||
util.tryWithObserver = function(observer, fn, ...)
|
||||
return xpcall(fn, function(...)
|
||||
return util.xpcall(fn, function(...)
|
||||
return observer:onError(...)
|
||||
end, ...)
|
||||
end
|
||||
|
@ -2,6 +2,12 @@ local util = {}
|
||||
|
||||
util.pack = table.pack or function(...) return { n = select('#', ...), ... } end
|
||||
util.unpack = table.unpack or unpack
|
||||
util.xpcall = function(fn, err, ...)
|
||||
local arg = util.pack(...)
|
||||
return xpcall(function()
|
||||
fn(util.unpack(arg))
|
||||
end, err)
|
||||
end
|
||||
util.eq = function(x, y) return x == y end
|
||||
util.noop = function() end
|
||||
util.identity = function(x) return x end
|
||||
@ -10,7 +16,7 @@ util.isa = function(object, class)
|
||||
return type(object) == 'table' and getmetatable(object).__index == class
|
||||
end
|
||||
util.tryWithObserver = function(observer, fn, ...)
|
||||
return xpcall(fn, function(...)
|
||||
return util.xpcall(fn, function(...)
|
||||
return observer:onError(...)
|
||||
end, ...)
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user