Сервер должен вернуть обещание, в этом случае await будет ждать его разрешения.В приведенном ниже коде я сделал макет сервера, чтобы проверить весь код.Он будет выполнять работу синхронно.
const server = {
post: function(url, data) {
const time = 300 + Math.random() * 1500;
console.log("Posting at " + url + " ... (" + Math.round(time) + "ms)");
return new Promise(resolve => setTimeout(() => resolve(), time)
);
}
};
async function doSave(event) {
await server.post('/insertRecord', {
name: 'joe'
});
//have to work after completion of above request
console.log('doing Work after InsertRecord');
await server.post('/changeCountry', {
countryName: 'US'
});
//have to work after completion of above request
console.log('doing Work after changeCountry');
await server.post('/satge', {
stage: 'fifth'
});
}
doSave();
Вывод:
Posting at /insertRecord ... (1306ms)
doing Work after InsertRecord
Posting at /changeCountry ... (1752ms)
doing Work after changeCountry
Posting at /satge ... (1616ms)
Проверьте по этой ссылке для получения дополнительной информации об ожидающих, асинхронных, обещаниях