lua 函数调用

yeelink=require("yeelink_lib")yeelink.init(23333,23333,"Youapi-key",function()print("... 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()的神马时候执行?
展开
 我来答
百度网友ca6ad38
2015-10-01 · TA获得超过157个赞
知道小有建树答主
回答量:237
采纳率:91%
帮助的人:90.4万
展开全部
这得看你这个 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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式