【发布时间】:2021-01-19 05:45:05
【问题描述】:
我正在构建一个 Web 应用程序,并尝试使用 socket.io 的 emit() 以特定顺序将数据发送到服务器。基本上,我试图同步发送两组数据,然后在之前的两组数据(steps 和files)完全发送后发送“提交”消息。我的问题是“提交”消息是在文件完成发送之前发送的。我正在尝试使用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()));
});
}
【问题讨论】:
标签: javascript asynchronous socket.io synchronous