使用一個接口的結果作為第二個接口的參數并將兩者的數據放置成下拉框的格式

背景

我使用下拉框實現選擇id
但是只有兩個接口 一個是所有的id 另一個是id對應的具體信息 我想把id傳入另一個接口并且獲取其name然后寫成類似這樣的數組
[
{
value: 1,
label: ‘名稱1’
},
{
value: 2,
label: ‘名稱2’
}
{
value: 3,
label: ‘名稱3’
}
]
然后傳入options作為下拉框的數據

實現

起初我想著在第一個接口的then里面直接調用第二個接口 但是發現不行 因為我使用了直接賦值的操作

getSites().then((response) => {
const transformedData = response.data.map(item => ({
value: item.id,
label: item.name
}));
options1.value = transformedData
})
所以在里面直接俄調用接口是錯誤的
然后試著把第二個接口封裝成一個類 然后供第一個接口調用 ,發現還是不行 因為接口方法返回的值都是promise

解決

使用Promise.all(promises)進行異步操作
其實內核很簡單 就是把id傳進接口二中然后輸出為一個數組 再從數組中一個一個拿 并且里面的方法也是寫在外面了 唯一不同的是將里面的id截取出來了
jianshigetGroups().then((response) => {
const groupIds = response.data.map(item => item.id);
const promises = groupIds.map(id => getGroupName(id));

Promise.all(promises).then(names => {const transformedData = response.data.map((item, index) => ({value: item.id,label: names[index]}));console.log(transformedData);options2.value = transformedData;
}).catch(error => {console.log(error);
});

});

const getGroupName = (id) => {
return jianshigetGroupDetail(id).then((response) => {
return response.data.name;
});
};

拓展

Promise.all(promises)是一個用于處理一組Promise對象的方法。它接收一個Promise對象數組作為參數,并返回一個新的Promise對象。

當調用Promise.all(promises)時,它會等待所有的Promise對象都被解決(即狀態變為resolved)或有一個Promise對象被拒絕(即狀態變為rejected)。只有當所有的Promise對象都被解決時,返回的Promise對象才會被解決,并且它的解決值是一個包含了所有Promise對象解決值的數組。

如果其中一個Promise對象被拒絕,返回的Promise對象會立即被拒絕,并且它的拒絕值是第一個被拒絕的Promise對象的拒絕值。

一旦返回的Promise對象被解決或被拒絕,就可以使用.then()和.catch()等方法來處理它的解決值或拒絕值。

在這段代碼中,Promise.all(promises)用于等待所有的getGroupName(id)函數的異步操作完成,并將它們的解決值(群組名稱)存儲在names數組中。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/165688.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165688.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165688.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【PPspliT】ppt轉pdf-保留過渡動畫

網址 http://www.maxonthenet.altervista.org/ppsplit.php 下載安裝 使用 再次打開ppt,就能在上方的選項欄里頭看到了:

GEE生物量碳儲量——利用紅和近紅外波段和OTSU大津法提取純凈森林面積

簡介: 如何利用紅和近紅外波段和OTSU大津法提取純凈森林面積?本文的主要邏輯是利用特定時期的遙感影像的波段,提取指定范圍的內的DN值,然后分別統計發生閾值變化的峰值區域,從而作為篩選森林的臨界點,如果研究區較大的話則需要先進行影像分割,分割成為相同大小的區域,…

前端開發Java學習

注釋: 單行注釋 // 多行注釋 /* */ 文件注釋 /** */ 1 關鍵字 (關鍵字一定是小寫) 2 常量 字符串常量"HelloWord","你好世界"整數常量12,-33小數常量3.14,22.1字符常量A,a &…

不是默認進入Linux|總是自動進入windows系統

問題描述 不是默認進入Linux系統無法主動出現boot引導自動進入windows系統 嘗試無效 修復引導無效重裝Grub無效重裝系統無效 環境 Ubuntu 22.04 LST微星主板 解決方案 修改引導順序: 開機狂按Del鍵,進入BIOS系統,左側Settings 設置&…

src和href的區別

前言 持續學習總結輸出中,src和href都是HTML中特定元素的屬性,都可以用來引入外部的資源。兩者區別如下: 1、作用 href 用于在當前文檔和引用資源之間確立聯系。 src 用于替換當前內容。 2、范圍用途 src(source&#xff09…

RabbitMQ基礎教程

1.什么是消息隊列 消息隊列(Message Queue),我們一般簡稱為MQ。消息隊列中間件是分布式系統中重要的組件,具有異步性、松耦合、分布式、可靠性等特點。用于實現高性能、高可用、可伸縮和最終一致性架構。是大型分布式系統不可缺少…

Angular11 MSAL B2C登錄實例 (一)

前言 因為項目需求,需要把Angular 11項目中登錄方式改成B2C登錄,所以在參考了一系列文檔后,成功通過MSAL將項目的登錄方式改成B2C登錄。下面介紹了詳細步驟及一些注意事項。 步驟: 1. 安裝MSAL 在項目中安裝msal npm i azure/…

BUUCTF [WUSTCTF2020]find_me 1

BUUCTF:https://buuoj.cn/challenges 題目描述: 得到的 flag 請包上 flag{} 提交。 感謝 Iven Huang 師傅供題。 比賽平臺:https://ctfgame.w-ais.cn/ 密文: 下載附件,得到一個.jpg圖片。 解題思路: 1、得到一張圖…

vue中頁面(路由)跳轉及傳值的幾種方式 router-link + query + params

vue中頁面(路由)跳轉及傳值的幾種方式 知道query 和 params 是什么 參考文案:https://www.php.cn/js-tutorial-382859.html 跳轉的幾種方式與傳值 1、router-link 1.1 根據路由路徑(無參數與有參數) <router-link to = "/page">跳轉到page頁面</…

Java WebSocket 客戶端接收大量數據

介紹 WebSocket 是一種基于 TCP 協議的全雙工通信協議&#xff0c;它能夠在客戶端和服務器之間建立一個持久連接&#xff0c;實現實時的雙向數據傳輸。在實際應用中&#xff0c;有時候我們需要處理大量的數據&#xff0c;例如實時監控系統或者實時股票行情等。本文將介紹如何使…

Matlab三角剖分插值問題分析

目錄 前言 一、問題引入 二、一個例子 1.生成散點圖 2.對數據進行剖分 3.點法式分析 三、最后結果 前言 上一篇文章感覺對三角剖分問題沒有說清楚&#xff0c;這次專門對三角剖分問題再仔細說說。 一、問題引入 實際上這個問題是用來解決二維曲面插值問題的。 二維插值問題&…

外部中斷為什么會誤觸發?

今天在寫外部中斷的程序的時候&#xff0c;發現中斷特別容易受到干擾&#xff0c;我把手放在對應的中斷引腳上&#xff0c;中斷就一直觸發&#xff0c;沒有停過。經過一天的學習&#xff0c;找到了幾個解決方法&#xff0c;所以寫了這篇筆記。如果你的中斷也時不時會誤觸發&…

數 組

數組格式 普通數組下標是數字 關聯數組下標是字符串 例子&#xff1a; a&#xff08;10 20 30 40 50&#xff09; a[0] 10 數組的分類(普通數組和關聯數組) 普通數組 可以不需要手動聲明&#xff0c;直接使用 declare -a 數組名 關聯數組 一定要手動聲明 adeclare …

通過Spring整合MyBatis實現持久層操作

文章目錄 為什么要整合Spring和MyBatis&#xff1f;步驟一&#xff1a;添加依賴步驟二&#xff1a;配置數據源步驟三&#xff1a;配置MyBatis步驟四&#xff1a;創建Mapper接口和XML文件步驟五&#xff1a;使用Mapper接口拓展&#xff1a;事務管理 &#x1f389;通過Spring整合…

Leetcode173. 二叉搜索樹迭代器

Every day a Leetcode 題目來源&#xff1a;173. 二叉搜索樹迭代器 解法1&#xff1a;中序遍歷 我們可以直接對二叉搜索樹做一次完全的遞歸遍歷&#xff0c;獲取中序遍歷的全部結果并保存在數組中。隨后&#xff0c;我們利用得到的數組本身來實現迭代器。 代碼&#xff1a…

競賽 : 題目:基于深度學習的水果識別 設計 開題 技術

1 前言 Hi&#xff0c;大家好&#xff0c;這里是丹成學長&#xff0c;今天做一個 基于深度學習的水果識別demo 這是一個較為新穎的競賽課題方向&#xff0c;學長非常推薦&#xff01; &#x1f9ff; 更多資料, 項目分享&#xff1a; https://gitee.com/dancheng-senior/pos…

Spark-06:共享變量

目錄 1.廣播變量&#xff08;broadcast variables&#xff09; 2.累加器&#xff08;accumulators&#xff09; 在分布式計算中&#xff0c;當在集群的多個節點上并行運行函數時&#xff0c;默認情況下&#xff0c;每個任務都會獲得函數中使用到的變量的一個副本。如果變量很…

開啟數據庫審計(db,extended級別或os級別),并將審計文件存放到/home/oracle/audit下

文章目錄 開啟數據庫審計&#xff08;db,extended級別或os級別&#xff09;&#xff0c;并將審計文件存放到/home/oracle/audit下一. 簡介二. 配置2.1. 審計是否安裝2.2. 審計表空間遷移2.3. 審計參數2.4. 審計級別2.5. 其他審計選項2.6. 審計相關視圖 三. 使用3.1. 開啟/關閉審…

成為獨立開發者有多難

首先自我介紹&#xff1a;我是一名前端開發工程師&#xff0c;7年的前端開發經驗。CSDN 九段刀客_js,vue,ReactNative-CSDN博客,80多萬的訪問量&#xff0c;1萬多的粉絲。 相信80%的程序員的終極夢想都是成為一名獨立開發者&#xff0c;不用找工作有自己的產品可以有睡后收入。…