Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php AngularJs,同时触发请求_Php_Ajax_Angularjs - Fatal编程技术网

Php AngularJs,同时触发请求

Php AngularJs,同时触发请求,php,ajax,angularjs,Php,Ajax,Angularjs,我有以下代码: 角度代码: $http.get('admin/a').success(function(){ console.log("A finish"); }); $http.get('admin/b').success(function(){ console.log("B finish"); }); PHP代码: Route::group(array('prefix' => 'admin'), function() { Route::g

我有以下代码:

角度代码:

$http.get('admin/a').success(function(){
        console.log("A finish");
    });
$http.get('admin/b').success(function(){
    console.log("B finish");
});
PHP代码:

Route::group(array('prefix' => 'admin'), function()
{   
    Route::get('a', array('before' => 'auth.backend', function(){  
        // SLEEP!
        sleep(5);       
        return Response::json(array('a' => 'a'));
    }));

    Route::get('b', array('before' => 'auth.backend', function(){               
        return Response::json(array('b' => 'b'));
    }));
}
我的问题是,第二个http调用直到第一个http调用完成才开始,正如您看到的,第一个路由休眠了五秒钟

有人知道如何同时发出和启动此请求吗


谢谢

您的JS代码是正确的。实际上,在请求A之后,服务器会立即发送B请求(您可以在浏览器的开发工具的网络面板中进行验证),但睡眠会阻止服务器在A完成之前实际
处理
B


这个问题用睡眠的替代方法来讨论这个问题:

您的JS代码是正确的。实际上,在请求A之后,服务器会立即发送B请求(您可以在浏览器的开发工具的网络面板中进行验证),但睡眠会阻止服务器在A完成之前实际
处理
B


此问题使用睡眠替代方案讨论此问题:

此行为是由于第一次调用(/admin/a)在睡眠期间持有会话锁,因此第二次调用(/admin/b)在没有会话锁的情况下无法继续

您可以在睡觉前通过呼叫解锁会话


如果您需要在唤醒后的第一个功能中访问会话,请参阅上的此答案。

此行为是由于第一次调用(/admin/a)在其睡眠期间持有会话锁,因此第二次调用(/admin/b)在没有会话锁的情况下无法继续

您可以在睡觉前通过呼叫解锁会话


如果您需要在唤醒后的第一个功能中访问会话,请参阅上的回答。

您是说5秒钟内没有任何事情发生,然后您会同时看到两个响应?因此您希望日志是:“B完成”,然后是“A完成”?不,我希望两个请求同时启动,第二个请求直到第一个请求完成后才开始。。。我不在乎完成的顺序。对不起,我的英语不好。那么-再次-你是说5秒钟内什么都没有发生,然后你看到两个响应?然后是你的PHP,我建议在后端使用Node。那么你是说5秒钟内什么都没有发生,然后你看到两个响应?所以你希望日志是:“B完成”,然后是“A完成”?不,我希望两个请求同时启动,第二个请求直到第一个请求完成后才启动。。。我不在乎完成的顺序。对不起,我的英语不好。那么-再次-你是说5秒钟内什么也没有发生,然后你看到两个响应?然后是你的PHP,我建议在后端使用Node。我使用sleep函数来模拟使用shell_exec执行命令,这需要很多时间。结果是一样的,第二个请求直到第一个请求完成才开始…是的,所以真正要问的问题(我建议发布一个新的)是如何配置PHP来处理并发请求。除了谷歌刚刚教我的关于睡眠的知识之外,我对PHP一无所知()谢谢你,罗伯特,我将朝这个方向研究。我使用sleep函数来模拟使用shell_exec执行命令的过程,这需要很多时间。结果是一样的,第二个请求直到第一个请求完成才开始…是的,所以真正要问的问题(我建议发布一个新的)是如何配置PHP来处理并发请求。除了谷歌刚刚教我的关于睡眠的知识之外,我对PHP一无所知()谢谢你,罗伯特,我会朝那个方向调查的。