Async di sini bermaksud Asynchronous, yang bermaksud prosesnya tidak segerak. Asynchronous membenarkan pelaksanaan selari kod. Ini bermakna kita boleh menjalankan sekeping kod secara berasingan dan bebas antara satu sama lain. Ini biasanya dipanggil proses async, dan ini adalah sama dalam PHP. Kami mempunyai model Async dalam PHP, yang membolehkan kami melaksanakan pelbagai tugas secara serentak. Ia menjadikan pelaksanaan kod lebih pantas dan meningkatkan prestasi juga.
IKLAN Kursus Popular dalam kategori ini PEMBANGUN PHP - Pengkhususan | 8 Siri Kursus | 3 Ujian Olok-olokMulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Sintaks:
Dalam PHP, kita boleh menggunakan pakej Spatie untuk menggunakan ciri async. Dengan pakej ini, kami boleh mencipta kumpulan yang akan mengendalikan panggilan async kami dan membantu kami menyediakan pelaksanaan program yang selari. Untuk penyataan yang lebih baik, kita boleh melihat sintaks. Lihat di bawah;
//package to be used use Spatie\Async\Pool; $mypool = Pool::create(); $mypool[] = async() { //your logic goes here })->then() { // your logic });
Pertama, kita perlu mengimport pakej, iaitu 'SpatieAsyncPool' di sini. Selepas itu, kami mencipta kolam yang akan mengendalikan operasi async untuk kami. Diikuti dengan kata kunci 'async' di dalam ini, kami akan menulis keseluruhan logik dan sekeping kod kami yang ingin kami jalankan secara selari. Di sini kita mempunyai kaedah 'kemudian', iaitu kaedah panggil balik. Di dalam ini, kita juga boleh menulis logik kita sendiri. Selepas semua operasi, kita boleh menulis lebih banyak operasi pada output yang diberikan dalam blok 'kemudian'.
Sekarang kita tahu bahawa fungsi async membolehkan kita melaksanakan pelbagai tugas. Jika kita bercakap tentang pengaturcaraan Segerak dalam PHP, jadi kita akan sentiasa mempunyai output dalam susunan yang sama. andaikan kita ingin mencetak nombor dari 1 hingga 10. Jadi jika saya menulis logik ini menggunakan kod Segerak, saya akan sentiasa mendapatkannya dalam tertib menaik. Tetapi jika kami cuba menggunakan kod async di sini untuk logik yang sama, maka kami tidak pasti tentang susunan nombor. Kami akan membincangkan perkara ini dengan lebih terperinci dengan beberapa contoh di bawah. Untuk menulis kod async dalam PHP, kami telah menggunakan satu pakej yang dipanggil 'spatie'. Ini juga memberikan kami pengendalian ralat dan pengecualian yang lebih baik dalam kod async. Pertama, kita akan melihat bagaimana untuk menulis logik mudah menggunakan pakej ini. Kemudian kita akan membincangkan lebih banyak kaedah yang boleh digunakan dengan kod async secara terperinci kemudian.
Contoh:
use Spatie\Async
cmd:
composer require spatie
Contoh:
$mypool = Pool::create();
Kami boleh memberikan sebarang nama kepada objek pool. juga, jangan lupa mengimport kelas Pool yang ada di dalam 'Async'. Lihat di bawah;
Contoh:
use Spatie\Async\Pool;
Contoh:
demoAsync(function () { // // }) ->then(function ($output) { // // })
Dalam sekeping kod di atas, kami sedang mencipta fungsi async dan menggunakan kaedah panggil baliknya 'then.' Fungsi 'then' ini bertanggungjawab untuk beroperasi apabila blok kod di atas berjaya dilaksanakan. Jika tidak, maka kita perlu mengendalikan kes itu dengan menggunakan kaedah Async yang lain.
Sekarang kita akan melihat beberapa kaedah untuk mengendalikan ralat, pengecualian dan tamat masa yang boleh berlaku semasa melaksanakan kod. Pakej ini memberikan kami pelbagai kaedah untuk mengendalikan perkara ini di dalam blok async kod. Mari kita bincangkan setiap daripada mereka secara terperinci. Lihat di bawah;
Kaedah ini akan dilaksanakan apabila blok kod gagal melaksanakan operasinya dalam jangka masa yang dijangkakan atau menghadapi ralat. Berikut ialah sintaks untuk menulis kaedah ini:
Contoh:
timeout(function () { // when timeout reached. })
Kaedah akan dilaksanakan jika blok kod berjaya dilaksanakan dan terdapat keperluan untuk melakukan operasi tambahan pada hasilnya. Berikut ialah sintaks untuk menulis kaedah ini:
Contoh:
then(function ($result) { // operation after result })
Kaedah ini akan dilaksanakan jika blok kod melemparkan pengecualian. Di dalam kaedah ini, kita boleh mengendalikannya dan melaksanakan logik kita. Sintaks untuk menulis kaedah ini ditunjukkan di bawah;
Contoh:
catch(function ($exp) { // exception can be handle here. })
Following are the examples given below:
In this example, we are implementing async with the method and printing two messages to keep it simple for beginners.
Code:
use Spatie\Async\Pool; $mypool = Pool::create(); $mypool ->asyncDemo(function () { print("async called here !!") }) ->then(function () { print("then called after result !!") } ;
Output:
In this example, we are using all the methods of async from the Spatie\Async\ package. Those are catch, then, and timeout. We keep it simple for now without too much logic.
Code:
use Spatie\Async\Pool; $mypool = Pool::create(); $mypool ->asyncDemo(function () { print("async called here !!") print("async called here !!") }) ->then(function ($output) { print("print called here !!") }) ->catch(function ($exception) { print("catch called here !!") }) ->timeout(function () { print("timeout called here !!") }) ;
Output:
By using async in our code, we can enable parallel execution of tasks in our program. Also, they increase the performance of the code because the piece of code is independent of each other. But using StopIteration in situations where the data from the previous block of code is dependent on the current can lead to data loss and inconsistency.
Atas ialah kandungan terperinci PHP tak segerak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!