焦點日報:Promise異步請求變成同步

2022-12-08 10:05:44 來源:51CTO博客


(資料圖片)

最近在寫CRMEBOA管理系統的客戶列表模塊有個需求,保存客戶并繼續添加合同和保存合同并繼續添加付款記錄,這個頁面跳轉簡單,但是比較難的是調接口后拿著接口返回的數據要同步到下一個頁面,這一部分當時寫的時候遇到的問題主要是:保存成功后頁面已經跳轉到下一個,但是保存接口返的客戶id在下一個頁面一直打印不出來,打印值為undefined。最后想了一下就是異步和同步的問題。使用Promise完美解決。

1.Promise是一個容器,保存著某個未來才會結束的事件(異步操作)的結果。

2.Promise有三種狀態:pending(進行時),fulfilled(成功)和reJect(失敗),只有異步操作的結果可以改變promise的狀態,一旦promise從pending狀態轉化為fulfilled和reJect后就不會再改變。

3.使用:

Const promise  = new Promie(function (resolve,reject){If(/* 異步操作成功*/){resolve(value)} else{reject(value)}})

4.項目中使用

// 提交handleConfirm() {//  請求的時候調用Promise      return new Promise((resolve, reject) => {        this.$refs.form.validate((valid) => {          if (valid) {            const data = {              eid: this.formInfo.id            };this.clientContractSave(data);            resolve(valid);          }        });      });},// 調用的方法的時候 this.$refs.contractInfo.handleConfirm().then(() => {// 調用接口.then() }

這樣子就會把異步變成同步,在開發中如果還有疑問可以在下方留言。

標簽: 異步操作 管理系統 可以改變

上一篇:天天看熱訊:容器指南之自定義LNMP容器鏡像
下一篇:全球視點!MYSQL-INNODB索引構成詳解