我有来自Ios服务器的两个异步响应:
string data("Name: value\r\nFoo: bar\r\n\r\nanything\r\nhere");
std::regex pattern("([^()<>@,;:\\\\\"/\\[\\]?={}\\s]+):\\s*(.+)\r\n(?:\r\n([\\s\\S]+))?");
std::smatch result;
while (regex_search(data, result, pattern)) {
std::cout << result[1] << "\n" << result[2] << std::endl;
if (result[3].str().size() > 0)
{
std::cout << result[3] << std::endl;
}
data = result.suffix().str();
}
我需要过滤这两个结果:
Name
value
Foo
bar
anything
here
但他们来serviceResponce1 = function(response, request){
result1 = Jquery.parseJson(request);
}
serviceResponce2 = function(response, request){
result2 = Jquery.parseJson(request);
}
并且过滤器不起作用。 (当我硬编码数据时,它的工作原理)如何同步它们?
答案 0 :(得分:2)
实现这一目标的最简单方法是在第一个请求的处理程序中生成第二个请求,然后处理响应:
request1(function(res1) {
request2(function(res2) {
filter(res1, res2);
})
});
第二种方法是使用延迟对象,如果你使用jQuery(最新版本),那么你可以使用:
$.when(request1, request2).done(filter)