私はAdafruit HUZZAH ESP8266でNodeMCU 0.9.6を使用しています。NodeMCU外部コールバック関数がエラーを生成します
http.get
ステートメント内のコールバック関数を定義し、次のコードは、動作:
http.get("http://192.168.2.38/ICmd.py?i=esp8266001", nil, function(code, data)
if (code < 0) then
print("***ICmd HTTP request failed")
else
print("***ICmd callback: ", code, data)
end
end)
次のコードは、スタンドアロン関数であることがhttp.get
ステートメント内からのコールバック関数の定義を移動:
function chkICmdResp(code, data)
if (code < 0) then
print("***ICmd HTTP request failed")
else
print("***ICmd callback: ", code, data)
end
end
http.get("http://192.168.2.38/ICmd.py?i=esp8266001", nil, chkICmdResp(code, data))
2番目の形式が機能せず、エラーが発生します。
stdin:2: attempt to compare nil with number
stack traceback:
stdin:2: in function 'chkICmdResponse'
stdin:1: in main chunk
私は間違って何かしていますか(NodeMCU noobie)?あるいはこれは設計上の特徴かバグですか?
複数のhttp.get呼び出しから参照できる単一のコールバック関数を持つことができればいいと思います。
注:呼び出し元の文の外で定義される関数を使用しようとすると、私はまたnet.socket:on("receive",...)
モジュールでこれを試してみましたが、同じエラー結果を持っています。
迅速な対応に感謝します。私はあなたの提案を撃つでしょう! – Jonathan