【发布时间】:2021-04-22 14:47:42
【问题描述】:
我正在尝试将作业分派给同步驱动程序并在页面呈现后运行它。然后使用 Laravel Echo 将状态更新发送到前端。
作业类已创建并正在运行。
Livewire 组件正在工作。
Echo 正在工作。
我正在尝试在表单提交后从 livewire 组件调用调度。
所以发生的事情是 afterResponse 部分不起作用。
// This inside the livewire component
ImportJob::dispatchAfterResponse( $data );
// OR tried both
dispatch( new ImportJob( $data ) )->afterResponse();
他们都工作并开始工作,他们不做的是 afterResponse 部分。
如果我将调用链接到一个不存在的方法,它会首先呈现页面,但当然会在作业完成时抛出一个错误,即 null 上没有 noneExistingMethod。
ImportJob::dispatchAfterResponse( $data )->nonExistingMethod();
编辑以清除。
问题是 livewire 组件在渲染页面之前等待作业完成。 如果我打开同一个页面两次并提交一个,我可以看到状态更新一一出现,但在提交表单的页面上,状态更新会在作业完成后一次性呈现。
【问题讨论】:
标签: php laravel laravel-livewire