在javascript中调用函数完成执行之前,如何在执行后调用一个函数

时间:2018-02-15 14:58:04

标签: javascript angularjs

我的情景是:

var data = getData();

function getData(){
    return 8;
}

function closePopup(){
    console.log('close popup executed');
} 

在这里,我想调用closePopup方法完全执行getData()函数,如同步。

由于 Rambabu B

2 个答案:

答案 0 :(得分:1)

您可以使用async函数等待Promise



function closePopup() {
  console.log("Closing popUp");
}

function getData() {
  return new Promise(resolve => {
    setTimeout(function() { //This is to simulate an async call (Like Ajax)
      resolve("Called");
    }, 2000);
  });
}

async function main() { // This is the async function
  console.log('Waiting 2 secs...');
  var data = await getData();
  console.log(data);
  closePopup();
  
  return "Some value if you want!"
}

main().then(v => console.log(v)); //An async function returns a Promise.




资源

答案 1 :(得分:0)

你可以使用promises在完成getData()函数或getData()函数内部之后调用函数,这将返回一个承诺,你可以在这里解决它。



var data = getData();
Promise.resolve(data).then(function(value) {
  studentdata = value;
  closePopup();
});