[英]Synchronizing javascript functions with promises, socket.io emit
我正在構建一個 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()));
});
}
請像這樣重寫代碼並告訴我。
sendToServer() {
Promise.all([
new Promise((resolve, reject) => resolve(this.sendSteps())),
new Promise((resolve, reject) => resolve(this.sendFiles()))
]).then(()=>{
this.sendSubmit();
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.