Kesegerakan Panggilan Balik Promise Constructor
Dalam konteks pembinaan Promise, anda mungkin tertanya-tanya tentang masa pelaksanaan panggilan balik yang diberikan kepada Promise pembina. Mari kita teroka soalan ini secara terperinci.
Pertimbangkan coretan berikut:
function doSomethingAsynchronous() { return new Promise((resolve) => { const result = doSomeWork(); setTimeout(() => { resolve(result); }, 100); }); }
Apabila membina Janji ini, pada titik manakah doSomeWork() digunakan?
Seperti yang Spesifikasi ECMAScript, fungsi pelaksana (panggilan balik yang diberikan kepada pembina) digunakan segera selepas pembinaan Janji. Ini bermakna doSomeWork() akan dilaksanakan serta-merta apabila Janji dibuat, sebelum panggilan balik meneruskan pelaksanaan. Inilah yang dinyatakan oleh MDN:
Pelaksana dipanggil serentak (sebaik sahaja Promise dibina) dengan fungsi resolveFunc dan rejectFunc sebagai argumen.
Sifat segerak seruan pelaksana ialah dijamin oleh spesifikasi. Sebagai contoh, jaminan ini relevan apabila mengarang berbilang janji menggunakan semua atau kaum, serta apabila pelaksana mempunyai kesan sampingan segerak.
Atas ialah kandungan terperinci Bilakah Panggilan Balik Promise Constructor Dilaksanakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!