Apakah Perintah Pelaksanaan dalam Janji JavaScript?

Patricia Arquette
Lepaskan: 2024-10-24 11:22:02
asal
859 orang telah melayarinya

What Is the Order of Execution in JavaScript Promises?

Apakah susunan pelaksanaan dalam janji JavaScript?

Janji JavaScript ialah cara untuk mengendalikan operasi tak segerak. Apabila janji diselesaikan, ia melaksanakan pengendali .then()nya secara tidak segerak selepas urutan pelaksanaan semasa selesai. Ini bermakna bahawa sebarang kod segerak dalam urutan semasa akan dijalankan sebelum pengendali .then().

Contoh

Pertimbangkan coretan kod berikut:

<code class="javascript">Promise.resolve('A')
  .then(function(a){console.log(2, a); return 'B';})
  .then(function(a){
     Promise.resolve('C')
       .then(function(a){console.log(7, a);})
       .then(function(a){console.log(8, a);});
     console.log(3, a);
     return a;})
  .then(function(a){
     Promise.resolve('D')
       .then(function(a){console.log(9, a);})
       .then(function(a){console.log(10, a);});
     console.log(4, a);})
  .then(function(a){
     console.log(5, a);});
console.log(1);
setTimeout(function(){console.log(6)},0);</code>
Salin selepas log masuk

Hasilnya coretan kod ini ialah:

<code class="text">1
2 "A"
3 "B"
7 "C"
4 "B"
8 undefined
9 "D"
5 undefined
10 undefined
6</code>
Salin selepas log masuk

Penjelasan

  1. Baris 1: Kod bermula dengan menyelesaikan janji dengan nilai 'A'.
  2. Baris 2-4: Pengendali .then() pada janji ini mencatatkan nilai 'A' ke konsol dan mengembalikan nilai 'B'.
  3. Baris 5-9: Pengendali .then() pada janji yang dikembalikan oleh pengendali sebelumnya merekodkan nilai 'B' ke konsol dan mengembalikan nilai yang sama.
  4. Baris 10-14 : Pengendali .then() pada janji yang dikembalikan oleh pengendali sebelumnya merekodkan nilai 'B' ke konsol dan mengembalikan nilai yang sama.
  5. Baris 15-19: Pengendali .then() pada janji yang dikembalikan oleh pengendali sebelumnya merekodkan nilai 'B' ke konsol dan mengembalikan nilai yang sama.
  6. Baris 20: Pengendali .then() pada janji yang dikembalikan oleh pengendali sebelumnya mencatatkan nilai 'B' ke konsol.
  7. Baris 21: Fungsi setTimeout() digunakan untuk menjadualkan fungsi yang akan dilaksanakan selepas kelewatan daripada 0 milisaat.
  8. Baris 22: Fungsi console.log() digunakan untuk log nilai '1' ke konsol.

Tertib Pelaksanaan

Turutan pelaksanaan dalam coretan kod ini ialah:

  1. Console.log() pada baris 22 dilaksanakan dahulu, diikuti dengan Promise.resolve() pada baris 1 .
  2. Pengendali .then() pada baris 2 dilaksanakan seterusnya, diikuti oleh pengendali .then() pada baris 5.
  3. Pengendali .then() pada baris 10 dilaksanakan seterusnya , diikuti oleh pengendali .then() pada baris 15.
  4. Pengendali .then() pada baris 20 dilaksanakan seterusnya.
  5. Fungsi setTimeout() pada baris 21 dilaksanakan terakhir.

Atas ialah kandungan terperinci Apakah Perintah Pelaksanaan dalam Janji JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!