【发布时间】:2019-09-21 23:29:17
【问题描述】:
我使用地理配准系统, 我正在按纳税人姓名进行搜索,作为响应,他在地图上返回了一批,他在数据库中提出了一个请求,如果请求为真,他使用 async/await 它重定向到该批次,但我不能使用它,因为在生产中 babel 不接受
async buscarGeometria(entidade) {
let entidadeAnterior = entidade;
if (entidade && entidade.id) {
this.LoadingManager.show();
if (entidade && entidade.isPessoa) {
entidade = await this.DataFactory.GET(this.URL.LOTES() + '/' + entidade.val.lotes[0].id);
entidade.URL = this.URL.LOTES();
entidade.box = 'BoxInformacoesCadastrais';
}
this.DataFactory
.GET(entidade.URL + '/geometria/' + entidade.id)
.then(response => {
if (response && response.geom) {
entidadeAnterior.isPessoa ? this.CentralizaMapaBuscasService.centralizaMapa(this.mapa, entidade.centroide)
: this.CentralizaMapaBuscasService.centralizaMapa(this.mapa, entidade.val.centroide);
this.select = this.CentralizaMapaBuscasService.getSelect('Lotes', this.mapa);
this.CentralizaMapaBuscasService.criarFeatureAndSelect(response.geom, this.select)
entidadeAnterior.isPessoa ? this.CentralizaMapaBuscasService.mostraBroadcast(entidade.box, entidade)
: this.CentralizaMapaBuscasService.mostraBroadcast(entidade.box, entidade.val);
}
}).finally(() => this.LoadingManager.hide());
}
}
但是我不能使用 async / await 来解决 babel 兼容性问题,我做出了承诺但它没有用
buscarGeometria(entidade) {
let entidadeAnterior = entidade;
if (entidade && entidade.id) {
this.LoadingManager.show();
if (entidade && entidade.isPessoa) {
this.DataFactory.GET(this.URL.LOTES() + '/' + entidade.val.lotes[0].id).then((snap) => {
entidade = snap;
entidade.URL = this.URL.LOTES();
entidade.box = 'BoxInformacoesCadastrais';
});
}
this.DataFactory.GET(entidade.URL + '/geometria/' + entidade.id).then(response => {
if (response && response.geom) {
entidadeAnterior.isPessoa ? this.CentralizaMapaBuscasService.centralizaMapa(this.mapa, entidade.centroide)
: this.CentralizaMapaBuscasService.centralizaMapa(this.mapa, entidade.val.centroide);
this.select = this.CentralizaMapaBuscasService.getSelect('Lotes', this.mapa);
this.CentralizaMapaBuscasService.criarFeatureAndSelect(response.geom, this.select);
entidadeAnterior.isPessoa ? this.CentralizaMapaBuscasService.mostraBroadcast(entidade.box, entidade)
: this.CentralizaMapaBuscasService.mostraBroadcast(entidade.box, entidade.val);
}
}).finally(() => this.LoadingManager.hide());
}
}
我想知道其他方法,谢谢
【问题讨论】:
-
什么是兼容性问题?这里没有提到任何错误
-
当我们创建构建以进入生产环境时,babel 无法识别异步/等待
-
听起来你使用的是旧版本的 babel
-
对于没有
async/await的条件句中的承诺,请参阅this
标签: javascript promise async-await