我的public run()
方法中有一些调用通过API调用检索一些信息。页面加载时会发生这种情况。
但是,一旦加载,用户将执行上传。上传完成后,我想刷新页面,其中包含public run()
拉出的信息 - 此时此信息应根据上传情况包含新信息。
我尝试在上传结束时添加this.run()
,但似乎无效。我基本上只想在上传后刷新(回发)这个东西。
任何想法都会受到最高的赞赏。
public run(): void {
try {
this._apiBureauModHistory.GetTopBureauModUpdateHistory().then(x => {
if (x) {
this.bmuh = x;
switch (this.bmuh.Bureau) {
case "00":
this.bmuh.Bureau = "Ncci";
break;
case "04":
this.bmuh.Bureau = "CA";
break;
case "31":
this.bmuh.Bureau = "NY";
break;
case "37":
this.bmuh.Bureau = "PA";
break;
case "07":
this.bmuh.Bureau = "DE";
break;
case "48":
this.bmuh.Bureau = "WI";
break;
case "21":
this.bmuh.Bureau = "MI";
case "22":
this.bmuh.Bureau = "MN";
}
}
})
}
catch (e) {
this.running = false;
this.runError = e;
}
try {
this._apiBureauModHistory.GetAllBureauModUpdateHistory().then(x => {
if (x) {
this.bmuh_arr = x;
// this.bmuh_arr.forEach(function (t) { if (!this.bmuh_summ.includes(t.UploadedDate)) this.bmuh_summ.push(t.UploadedDate); });
for (var i = 0; i < this.bmuh_arr.length; i++) {
for (var j = i + 1; j < this.bmuh_arr.length; j++){
if (this.bmuh_arr[i].UploadedDate === this.bmuh_arr[j].UploadedDate)
j = ++i;
// this.bmuh_summ.push(this.bmuh_arr[i].UploadedDate);
}
}
}
})
}
catch (e) {
this.running = false;
this.runError = e;
}
}
upload(): void {
var formData = new FormData()
for (let i = 0; i < this.files.length; i++) {
formData.append('files', this.files[i]);
}
this.http.fetch(window.wcApiUrl + '/Lookup/BureauModUpdate/CreateBureauModUpdates', {
method: 'post',
body: formData
})
}
答案 0 :(得分:0)
在upload()
函数中,您有一个fetch
语句。这应该返回一个解决或拒绝的承诺。您可以像这样使用.then():
this.http.fetch(window.wcApiUrl +
'/Lookup/BureauModUpdate/CreateBureauModUpdates', {
method: 'post',
body: formData
})
.then(response =>{
//do something with response.json()
this.updateInfo(response.json());
})
.catch(err=>console.log('something error-ed : %o',err);
例如,您可以从帖子返回您需要的信息作为JSON并使用它。 (fetch' by the way is asynchronous, so code after
fetch`将在返回响应之前运行。)
您甚至可以刷新页面,但这会破坏单页应用程序模式的目的。