2017-08-11 42 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转换为异步功能。