vue怎么让一个函数执行完再执行另一个?

  • 3
新手上路,请多包涵
created(){
    this.getItem()
    this.search()
}

created里有两个函数
怎么让getItem()执行完了再执行search()呀

回复
阅读 532
4 个回答

如果是同步函数,那么自然会等待 getItem() 执行完再执行 search()

如果是异步函数,vue 钩子函数可以是异步函数,即:

async created() {
  await this.getItem();
  this.search();
}
一路向北
  • 3
新手上路,请多包涵

这个没有什么参数,简单点可以把第二个方法放到第一个方法里面,如果有请求,就放到请求成功里面

created(){
    this.getItem(this.search)
}

然后在this.getItem函数中的最后去执行this.search

getItem(cb) {
  ...
  cb && cb();
}

使用await/async是最简单的解决办法,只需要这样改造:

async created(){
  await fun_a();
  await fun_b();
  //最后一个执行的方法不必用await
  fun_c();
}

然后每个方法都必须返回一个Promise

fun_a(){
  return new Promise((resolve, reject){
    if(true) resolve();
    reject();
  });
}

就可以了

你知道吗?

宣传栏