2017-08-11 67 views
0

我試圖找出是否保存了一條記錄。從一個函數調用另一個函數來保存記錄,問題是第二個函數的異步請求。爲了解決它使用承諾,但我仍然有異步的問題,當我調用承諾,我可以完美解決,但我的主要功能不會將值設置爲變量isStepValid同步。如何創建同步功能

enterprise.save = function(element){ 
//some code... 
    return new Promise((resolve ,reject) => { 
    // .... request service 
    if(response.data[0].status == "SUCESS"){ 
       resolve(response.data[0].message); 
    } 
    else{ 
     reject(response.data[0].message); 
     } 
    }); 

}

function validateSteps(stepnumber){ 
var isStepValid = true; 
     message=""; 

       enterprise.save(this).then((resolve)=>{ 
       isStepValid = true; 
       console.log("resolve:",resolve); 
       }).catch((reject)=>{ 
       console.log("reject:",reject); 
       isStepValid = false; 
       }); 
} 

當此功能完成變量isStepValid不匹配的承諾(它同意,直到執行此功能之後)的答案之一。

+0

承諾不使代碼同步。他們只是使處理異步代碼更容易。 – Bergi

回答

0

您不能再次使異步功能同步。

您應該擁抱Promises並將您的validateSteps轉換爲異步功能。