Javascript 如何确保一个函数调用一个接一个地发生

Javascript 如何确保一个函数调用一个接一个地发生,javascript,async-await,Javascript,Async Await,在我的web应用程序中,有两个javascript函数submitJob和fetchJobs。我想在submitJob的末尾调用fetchJob,这样用户就可以看到新作业已创建(this.jobs连接到一些显示元素)。现在,数据库确实更新了,但是前端没有更新(除非我刷新网页)。我的javascript代码如下所示 submitJob: async function() { try {

在我的web应用程序中,有两个javascript函数
submitJob
fetchJobs
。我想在
submitJob
的末尾调用
fetchJob
,这样用户就可以看到新作业已创建(
this.jobs
连接到一些显示元素)。现在,数据库确实更新了,但是前端没有更新(除非我刷新网页)。我的javascript代码如下所示

submitJob: async function() {
  try {                                                                        
    let sel = document.getElementById('jobPriority')                           
    let priority = Number(sel.options[sel.selectedIndex].value);  
    let jobData = {'priority': priority, 'data': ''};                          
    let response = await axios.post('/api/jobs/', json=jobData,                
            {headers: {'Authorization': "Bearer " + this.token}});             
  } catch (error) { this.handleError(error); };                                
  this.fetchJobs();                                                     
},                                                                             
fetchJobs: async function() {                                           
  try {                                                                        
    let response = await axios.get('/api/jobs/',                               
            {headers: {'Authorization': "Bearer " + this.token}});             
    this.jobs = response.data;                                                 
  } catch (error) { this.handleError(error); };   
},
我怀疑在
axios.post
返回后,不会调用
fetchJobs
。我如何保证?我试图将
this.fetchJobs()
放在
try
语句中,但它也不起作用

更新:根据服务器日志,没有GET请求。只有成功的POST请求。不知道为什么会这样


提前感谢您的帮助

您可以在javascript中使用promised和asyc,如下所示

function resolveAfter2Seconds(x) {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve(x);
    }, 2000);
  });
}

async function add1(x) {
  var a = resolveAfter2Seconds(20);
  var b = resolveAfter2Seconds(30);
  return x + await a + await b;
}

add1(10).then(v => {
  console.log(v);  // prints 60 after 2 seconds.
});

async function add2(x) {
  var a = await resolveAfter2Seconds(20);
  var b = await resolveAfter2Seconds(30);
  return x + a + b;
}

add2(10).then(v => {
  console.log(v);  // prints 60 after 4 seconds.
});

使用
asyncFunc1()。然后(asyncFunc2)
您必须返回一个承诺,这与OP的代码有什么关系?他们已经在第一个函数中调用了
wait axios.post(…)
,然后在第二行上调用第二个函数。这里必须执行submitJob()。然后在
wait
一行之后,在
submitJob()函数中调用OP的代码
fetchJobs()
中的(=>{fetchJobs()})。这不应该有同样的效果吗?不要调用此.fetchJobs();为什么?如果您不能使用
wait
关键字来等待某件事情,那么它有什么意义?