亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

嵌套 JavaScript Fetch

嵌套 JavaScript Fetch

白板的微信 2022-08-27 09:30:22
我有一個依賴于另一個 fetch 語句的值的 fetch 語句。當我執行以下命令時,第一個讀取成功(返回用戶),但依賴于第一個讀取值的第二個讀取失敗,類型錯誤:提取失敗。我已經嘗試了對MS Edge,FF和Chrome的測試,結果相同(我也嘗試過asnyc / await,這導致了同樣的問題)。我已經獨立測試了這些調用中的每一個(第二個調用將john-doe硬編碼到調用中)。它們獨立工作(后端的服務是澤西島)。我來自jQuery背景,我會使用$.when來做下面的工作,但我們正試圖擺脫辦公室里的庫和框架。任何幫助將不勝感激。我已經嘗試了我在本網站和其他地方找到的所有解決方案,但沒有成功。fetch('/my_services/rest/services/getUser').then(function(response) {  return response.text(); }).then(function(data) {  alert(data); // correctly displays "john-doe"  return fetch('/my_services/rest/services/getMetaForUser/' + data); }).then(function(response) {  return response.text();}).then(function(data) {  alert(data);  }).catch(function(error) {  alert(error); // TypeError: Failed to fetch});
查看完整描述

3 回答

?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

使用異步等待語法,如下所示:


 async function yourFunction() {

     let response = await fetch(`/first/api...`);

     let name = await response.json()

     console.log(name)//John

     let res = await fetch(`/second/apiwithName....`);

     let data = await res.json()

     console.log(data)//your data 

 }


 yourFunction();


查看完整回答
反對 回復 2022-08-27
?
四季花海

TA貢獻1811條經驗 獲得超5個贊

您應該嘗試查看第二次抓取是否確實得到響應。如果有效,則可以使用“這應該返回 true”。您也可以使用 檢查狀態。response.okresponse.status

這應該可以幫助您檢查錯誤是否來自代碼,或者它是否是網絡/ API調用問題。


查看完整回答
反對 回復 2022-08-27
?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

謝謝大家。當我向我的 onclick 事件處理程序添加“return false”并附加"</a>"

此操作失?。?/p>

<a href onclick="myFunc()">Click to do x...

這奏效了:

<a href onclick="myFunc(); return false;">Click to do x...</a>

不敢相信我錯過了一個href的結尾錨點。再次感謝大家。雖然這兩種方法都有效,但我同意那些建議使用異步/等待的人。對于此任務,這似乎是更干凈的方法。

非常感謝,伙計們。


查看完整回答
反對 回復 2022-08-27
  • 3 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號