lua 函数调用

yeelink = require("yeelink_lib")

yeelink.init(23333,23333,"You api-key",function()

print("Yeelink Init OK...") 请教这部分语句,何时会执行到

tmr.alarm(1,60000,1,function() --Step4: Have fun~ (Update your data)
yeelink.update(dht.getTemperature())

end)

end)
这个匿名函数的回调函数在init()的神马时候执行?

这得看你这个 yeelink.init 怎么处理啊

你这个函数是作为 yeelink.init 的第4个参数,那你得看你的 init() 里怎么对这个参数处理追问

function M.init(_device, _sensor, _apikey)
return dns

end

函数的原形没有定义啊,况且这个是回调函数,应该是在init()返回一些东西后才会执行到,
这个函数是网上抄的,原例子就是这样的,我在执行时的状况,就死在了init()中,没有返回,
可能我对回调函数理解不透澈吧

追答

代码不全吧

作为参数传给了某个函数,那就得让某个函数执行,看你这个原型只定义了3个参数,也没什么处理啊

例子:

-- 定义一个函数,作为回调,可以不定义,到时传入时直接写入一个函数
function callback(a)
    print('callback ' .. tostring(a))
end

function func1(a, b, c, d)
    -- 判断第4个参数是否是一个函数
    if type(d) ~= 'function' then
        return false
    end
    -- 简单处理
    if (a == 'AAA') and (b == 'BBB') then
       -- 执行 第4个参数,也就是传入的那个函数
       d(c)
    else
       d('err')
    end
    return true
end

func1('AAA', 'BBB', 'CCC', callback)
或者是
func1('AAA', 'BBB', 'CCC', function(a) print('callback ' .. tostring(a)) end)

结果都是输出 callback CCC

温馨提示:答案为网友推荐,仅供参考
相似回答