同步javascript函数与承诺,套接字.io发出



我正在构建一个web应用程序,我试图以特定的顺序发送数据到服务器,使用套接字。io的排放()。基本上,我尝试同步发送两组数据然后进行"提交"在前两组数据(stepsfiles)完全发送后,再发送消息。我的问题是"提交"消息在文件发送完成之前被发送。我试图使用Promises,但它不工作,我猜有一个错误的使用。

sendToServer() {
Promise.all([
new Promise((res) => res(this.sendSteps())),
new Promise((res) => res(this.sendFiles()))
]).then(this.sendSubmit());
}

更新:

我也试过这个,但它不能解决问题。sendSubmit()仍然会在sendFiles()完成之前启动。

async sendToServer() {
return new Promise((res, rej) => res(this.sendSteps()))
.then(() => {
return new Promise((res, rej) => res(this.sendFiles()));
})
.then(() => {
return new Promise((res, rej) => res(this.sendSubmit()));
});
}

请像这样重写代码并让我知道。

sendToServer() {
Promise.all([
new Promise((resolve, reject) => resolve(this.sendSteps())),
new Promise((resolve, reject) => resolve(this.sendFiles()))
]).then(()=>{
this.sendSubmit();
});
}