function foo(a)
print(“foo”, a)
return coroutine.yield(2 * a)//第一次调用后会停止在这里,直到第二次调用才继续
end
co = coroutine.create(function ( a, b )
–print(“co-body”, a, b)
Geo.pushMsg(a);
Geo.pushMsg(b);
local r = foo(a + 1)
Geo.pushMsg( r)
local r, s = coroutine.yield(a + b, a - b) ///第二次会停止在这里
–print(“co-body”, r, s)
return b, “end”
end)
coroutine.resume(co, 1, 10) 第一次调用 制定才参数为foo中的
coroutine.resume(co, "x", "y") 第二次调用
coroutine.resume(co, "x", "y") 第三次调用才结束整个过程