Fungsi await dan async dalam es6 ialah: 1. async digunakan untuk mengisytiharkan bahawa fungsi dilaksanakan secara tidak segerak dan mengembalikan objek Promise 2. await digunakan untuk menunggu kaedah tak segerak untuk menyelesaikan pelaksanaan, kerana await hanya boleh Digunakan dalam fungsi async, jadi ia digunakan untuk menunggu nilai pulangan fungsi async.
Persekitaran pengendalian tutorial ini: sistem Windows 10, ECMAScript versi 6.0, komputer Dell G3.
async digunakan untuk mengisytiharkan bahawa fungsi adalah tak segerak, manakala await digunakan untuk menunggu kaedah tak segerak untuk menyelesaikan pelaksanaan .
menunggu hanya boleh diletakkan dalam fungsi async
menunggu diikuti dengan fungsi yang mengembalikan janji baharu dan melaksanakannya.
Apabila menghadapi menunggu, kod berikut akan disekat dan kod penyegerakan di luar async akan dilaksanakan terlebih dahulu
Jika anda sedang menunggu janji, tunggu janji selesai, dan kemudian nyatakan parameter penyelesaian sebagai menunggu Hasil operasi formula.
Jika anda sedang menunggu ungkapan, selepas melaksanakan kod penyegerakan di luar async, kembali dan teruskan melaksanakan
async
fungsi async (termasuk functions Statement, function expression, Lambda expression) akan mengembalikan objek Promise.
Jika anda mengembalikan pembolehubah langsung dalam fungsi, async akan merangkum pembolehubah langsung ke dalam objek Promise melalui Promise.resolve().
Bagaimana jika fungsi async tidak mengembalikan nilai? Sangat mudah untuk membayangkan bahawa ia mengembalikan Promise.resolve(undefined).
Ciri Promise - tidak perlu menunggu, jadi jika anda melaksanakan fungsi async tanpa menunggu, ia akan melaksanakan serta-merta, mengembalikan objek Promise dan tidak akan menyekat pernyataan berikutnya. Ini tidak berbeza daripada fungsi biasa yang mengembalikan objek Promise.
menunggu
Secara umumnya, await dianggap sedang menunggu fungsi async selesai. Walau bagaimanapun, menurut sintaks, tunggu menunggu untuk ungkapan, dan hasil penilaian ungkapan ini ialah objek Janji atau nilai lain (dengan kata lain, tiada sekatan khas).
Oleh kerana fungsi async mengembalikan objek Promise, await boleh digunakan untuk menunggu nilai pulangan fungsi async, iaitu resolusi janji (nilai di sini).
menunggu bukan sahaja digunakan untuk menunggu objek Promise, ia boleh menunggu hasil daripada sebarang ungkapan Oleh itu, menunggu sebenarnya boleh diikuti dengan panggilan fungsi biasa atau pengukuran langsung.
Jika apa yang ditunggu bukan objek Janji, hasil ekspresi menunggu adalah apa yang ditunggunya.
Mengapa menggunakan tunggu
Untuk menjadikan kod tak segerak kami lebih seperti kod segerak
Jika terdapat berbilang janji, bagaimanakah kita boleh mendapatkan hasilnya selepas semua janji telah ditamatkan?
Oleh kerana Promise.all() juga mengembalikan janji, jika anda ingin menggunakan await untuk mendapatkan nilai beberapa janji, anda boleh terus menunggu Promise.all()
[Berkaitan cadangan: tutorial video javascript, bahagian hadapan web]
Atas ialah kandungan terperinci Apakah fungsi await dan async dalam es6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!