Bagaimana untuk menunggu klik butang dalam rantai Janji untuk menjeda pelaksanaan?
P粉170438285
P粉170438285 2023-08-15 13:06:43
0
1
764
<p>Saya cuba merantai beberapa panggilan bahagian belakang untuk memproses fail, tetapi keseluruhan aliran kerja memerlukan pengguna untuk memberikan beberapa input separuh jalan. Saya tidak pasti cara untuk menjeda pelaksanaan sehingga pengguna mengklik butang "<kod>Teruskan</kod>" supaya ia boleh terus berfungsi. </p> <p>Jadi prosesnya adalah seperti berikut:</p> <ol> <li>Pengguna memilih fail dan mencetuskan acara untuk memuat naik beberapa data. </li> <li>Saya mendapat respons daripada panggilan sebelumnya, membuka modal dengan borang. Saya perlu berhenti sebentar di sini. </li> <li>Isi borang dan klik butang <kod>Teruskan</kod> </li> <li>Cetuskan panggilan lain untuk menyerahkan maklumat lanjut ke titik akhir yang lain. </li> </ol> <p>Jadi, setiap langkah ini melibatkan permintaan HTTP, menggunakan <code>axios</code>, tetapi saya menghadapi masalah memahami cara merantai janji ini. </p> <p>Sekarang saya mempunyai kod yang serupa dengan: </p> <pre class="brush:js;toolbar:false;">onFileSelected(event) { // kod di sini aksios .post("") .then((res) => { //Di sini saya perlu membuka kotak modal dan menunggu butang diklik }) .then(() => { anotherMethod(); }); } </pra> <p><br /></p>
P粉170438285
P粉170438285

membalas semua(1)
P粉277824378

Promise sendiri tidak menyediakan kaedah untuk menjeda pelaksanaan, tetapi anda boleh menggunakan sintaks async/menunggu untuk mencapai ini. Buat Janji tersuai yang diselesaikan apabila pengguna mengklik butang "Teruskan". Seperti ini:

async function onFileSelected(event) {
  try {
    const response = await axios.post("") // 上传数据
    await showModalAndWaitForUserInteraction() // 暂停并等待用户输入

    await anotherMethod() // 用户交互后继续执行

    // 继续执行剩余的Promise链
    const anotherResponse = await axios.post("") // 提交更多信息到另一个终点
    // ...
  } catch (error) {
    // 在这里处理错误
  }
}

function showModalAndWaitForUserInteraction() {
  return new Promise((resolve) => {
    // 显示带有按钮的模态框
    // ...模态框逻辑
    // 然后 resolve() 
  })
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan