我正在尝试使用ESPAsyncWebServer库做一些事情。我在ServerManager.h中有一个名为MyServerManager的类。当我编译代码时,出现此错误。我究竟做错了什么?我该如何解决?
25:67是粗体字“ this ”
src \ ServerManager.cpp:在lambda函数中:src \ ServerManager.cpp:25:67:错误:此lambda函数request-> send(LittleFS,“ /status.html”,String(), false,[ this ](const String&var)-> String {return statusProcessor(var);});
*** [.pio \ build \ nodemcuv2 \ src \ ServerManager.cpp.o]错误1
在ServerManager.cpp文件中
void MyServerManager::init()
{
if (!LittleFS.begin())
{
Serial.println("Something went wrong while begin LittleFS");
}
server->on("/", HTTP_GET, [](AsyncWebServerRequest *request) {
request->send(LittleFS, "/status.html", String(), false, [this](const String &var) -> String { return statusProcessor(var); });
});
server->begin();
}
String MyServerManager::statusProcessor(const String &var)
{
if (var == "NETWORK_NAME")
{
return WiFi.SSID();
}
else if (var == "SIGNAL_STRENGTH")
{
return String(WiFi.RSSI()) + " dBm";
}
return String();
}
在ServerManager.h文件中
#ifndef ServerManager_h
#define ServerManager_h
#include <Arduino.h>
#include <ESPAsyncWebServer.h>
class MyServerManager
{
private:
AsyncWebServer *server = NULL;
AsyncWebSocket *ws = NULL;
void notifyClients(const String *msg);
void handleWebSocketMessage(void *arg, uint8_t *data, size_t len);
void onEvent(AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, uint8_t *data, size_t len);
void initWebSocket();
String statusProcessor(const String &var);
public:
MyServerManager(uint16_t port, const String url);
~MyServerManager();
void init();
};
#endif
尝试添加this
到外部lambda捕获列表:
void MyServerManager::init()
{
if (!LittleFS.begin())
{
Serial.println("Something went wrong while begin LittleFS");
}
// > vvvv <
server->on("/", HTTP_GET, [this](AsyncWebServerRequest *request) {
request->send(LittleFS, "/status.html", String(), false, [this](const String &var) -> String { return statusProcessor(var); });
});
server->begin();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句