国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

如何在Promise鏈中等待按鈕點擊來暫停執(zhí)行?
P粉170438285
P粉170438285 2023-08-15 13:06:43
0
1
1044
<p>我正在嘗試連結(jié)一些後端呼叫來處理文件,但整個工作流程需要使用者在中途提供一些輸入。我不確定如何暫停執(zhí)行,直到用戶點擊一個按鈕“<code>繼續(xù)</code>”後才能繼續(xù)工作。 </p> <p>所以流程如下:</p> <ol> <li>使用者選擇一個文件,觸發(fā)上傳一些資料的事件。 </li> <li>我從上一個呼叫中獲取回應(yīng),打開一個帶有表單的模態(tài)框。我需要在這裡暫停。 </li> <li>填寫表單,點選「<code>繼續(xù)</code>」按鈕繼續(xù) promise 連結(jié)。 </li> <li>觸發(fā)另一個調(diào)用,將更多資訊提交到另一個端點。 </li> </ol> <p>所以這些步驟中的每一步都涉及到一個 HTTP 請求,使用 <code>axios</code>,但我很難理解如何連結(jié)這些 promises。 </p> <p>現(xiàn)在有類似以下的程式碼:</p> <pre class="brush:js;toolbar:false;">onFileSelected(event) { // 這裡的程式碼 axios .post("") .then((res) => { // 在這裡我需要打開模態(tài)框,並等待按鈕點擊 }) .then(() => { anotherMethod(); }); } </pre> <p><br /></p>
P粉170438285
P粉170438285

全部回覆(1)
P粉277824378

Promise本身並沒有提供暫停執(zhí)行的方法,但你可以使用async/await語法來實現(xiàn)。建立一個自訂的Promise,在使用者點擊"Continue"按鈕時解析。就像這樣:

async function onFileSelected(event) {
  try {
    const response = await axios.post("") // 上傳數(shù)據(jù)
    await showModalAndWaitForUserInteraction() // 暫停并等待用戶輸入

    await anotherMethod() // 用戶交互后繼續(xù)執(zhí)行

    // 繼續(xù)執(zhí)行剩余的Promise鏈
    const anotherResponse = await axios.post("") // 提交更多信息到另一個終點
    // ...
  } catch (error) {
    // 在這里處理錯誤
  }
}

function showModalAndWaitForUserInteraction() {
  return new Promise((resolve) => {
    // 顯示帶有按鈕的模態(tài)框
    // ...模態(tài)框邏輯
    // 然后 resolve() 
  })
}
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板