【问题标题】:How to get http response from lumen API asynchronously如何从流明API异步获取http响应
【发布时间】:2021-01-22 13:36:54
【问题描述】:

Lumen 正在按照请求的顺序向客户端发送响应。它保持下一个响应,直到上一个响应完成。我需要让它异步

  • Laravel 流明路由代码:
$router->get('waist-xxxxxxx/v20/', ['uses' => 'DemoController@fnDemoFunction']);
$router->get('waist-xxxxxxx/v20/{serverSideRowUuid}', ['uses' => 'DemoController@fnDemoFunction']);
$router->post('waist-xxxxxxx/v20/', ['uses' => 'DemoController@create']);
$router->put('waist-xxxxxxx/v20/{serverSideRowUuid}', ['uses' => 'DemoController@update']);
$router->options('waist-xxxxxxx/v20', function () {
    return response('OK', \Illuminate\Http\Response::HTTP_NO_CONTENT)
        ->header('Access-Control-Allow-Credentials', 'true')
        ->header('Connection', 'keep-alive');
});
$router->options('waist-xxxxxxx/v20/{serverSideRowUuid}', function () {
    return response('OK', \Illuminate\Http\Response::HTTP_NO_CONTENT)
        ->header('Access-Control-Allow-Credentials', 'true')
        ->header('Connection', 'keep-alive');
});
  • 用于 API 调用的 Vue.js 应用代码:
export default {
    methods: {
     async mxGetDataFromDb() {
     /*                                                                                                                                                                                                     
       TODO: Need to restrict the load to current data                                                                                                                                                   
       api is vuex-orm-axios plugin function                                                                                                                                                                
       When using json-server backend the code is:                                                                                                                                                                                                                                                                      
     */
     console.log('reminders req sent')
     const proRemsFromDB = await clientSideTable.api().get(clientSideTable.apiUrl)
     console.log('reminders recd')
     if (proRemsFromDB.ok) {
     }
   },
 },
}

下面是截图以便更好理解:enter image description here

【问题讨论】:

  • 你在用php artisan serve吗?

标签: laravel vue.js lumen


【解决方案1】:

我怀疑您正在使用 php artisan serve 进行测试。

此命令使用the built-in PHP development server。这是一个很棒的工具,但它一次只能处理一个请求:

Web 服务器只运行一个单线程进程,因此如果请求被阻止,PHP 应用程序将停止。

一般来说,虽然php artisan serve 非常适合快速测试,但您需要设置类似Laravel Homestead 或其他更强大的长期开发环境。

【讨论】:

    猜你喜欢
    • 2015-06-13
    • 2012-08-10
    • 2017-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-28
    • 2020-12-27
    相关资源
    最近更新 更多