mirror of
https://github.com/centau/vide.git
synced 2026-08-20 14:41:37 +00:00
110 lines
2.2 KiB
Text
110 lines
2.2 KiB
Text
local vide = require "../"
|
|
|
|
do
|
|
print "============================================================="
|
|
|
|
local a = vide.source(1)
|
|
|
|
local cause_error = false
|
|
|
|
local function try_error()
|
|
if cause_error then error("uh oh") end
|
|
end
|
|
|
|
vide.root(function()
|
|
vide.effect(function()
|
|
a()
|
|
try_error()
|
|
end)
|
|
end)
|
|
|
|
cause_error = true
|
|
|
|
local ok, result = pcall(function() a(2) end)
|
|
print(result)
|
|
|
|
print "============================================================="
|
|
end
|
|
|
|
do
|
|
print "============================================================="
|
|
|
|
local a = vide.source(1)
|
|
local b = vide.source(1)
|
|
local c = vide.source(1)
|
|
|
|
local cause_error = false
|
|
|
|
local function try_error()
|
|
if cause_error then error("uh oh") end
|
|
end
|
|
|
|
vide.root(function()
|
|
vide.effect(function()
|
|
a()
|
|
b(vide.untrack(b) + 1)
|
|
end)
|
|
|
|
vide.effect(function()
|
|
b()
|
|
c(vide.untrack(c) + 1)
|
|
end)
|
|
|
|
|
|
vide.effect(function()
|
|
c()
|
|
try_error()
|
|
end)
|
|
end)
|
|
|
|
cause_error = true
|
|
|
|
local ok, result = pcall(function() a(2) end)
|
|
print(result)
|
|
|
|
print "============================================================="
|
|
end
|
|
|
|
do
|
|
print "============================================================="
|
|
|
|
local a = vide.source(1)
|
|
local b = vide.source(1)
|
|
local c = vide.source(1)
|
|
|
|
local cause_error = false
|
|
|
|
local function try_error()
|
|
if cause_error then error("uh oh") end
|
|
end
|
|
|
|
vide.root(function()
|
|
vide.effect(function()
|
|
a()
|
|
vide.untrack(function() -- todo: this trace appearing twice
|
|
b(b() + 1)
|
|
return nil
|
|
end)
|
|
end)
|
|
|
|
vide.effect(function()
|
|
b()
|
|
vide.batch(function()
|
|
c(vide.untrack(c) + 1)
|
|
end)
|
|
end)
|
|
|
|
|
|
vide.effect(function()
|
|
c()
|
|
try_error()
|
|
end)
|
|
end)
|
|
|
|
cause_error = true
|
|
|
|
local ok, result = pcall(function() a(2) end)
|
|
print(result)
|
|
|
|
print "============================================================="
|
|
end
|