我正在尝试从 http 客户端获取回调将小部件添加到 root()。当我单击菜单项时,我发送获取请求,然后根据响应添加一个小部件。
我的点击处理程序:
Wt::Http::Client *client = new Wt::Http::Client(Wt::WApplication::instance());
client->done().connect(boost::bind(&RequestBase::handleHttpResponse, this, _1, _2));
client->get("url...");
以及回调方法:
void RequestBase::handleHttpResponse(boost::system::error_code err, const Wt::Http::Message& response) {
stringstream ss;
ss << "test" << i++;
new Wt::WText(ss.str(), root());
Log(ss.str());
}
当我第一次单击菜单项时,我在控制台中看到日志消息,但浏览器中没有任何反应。当我再次单击它时,“test0”文本出现在浏览器中,“test1”出现在控制台中。第三次,“test1”出现在浏览器中,“test2”出现在控制台等中。如果我添加new Wt::WText("test", root());
到单击处理程序,则文本在单击后立即显示在浏览器中。我怎样才能让它工作?