Оновлена версія, await
а не використання .then()
.
await
припиняє виконання, поки Обіцяння не вирішиться (тобто не має значення). На відміну від використання, .then()
ви можете просто зберігати await
значення, коли ви виконуєте різні функції, які повертають обіцянки, а виконання продовжується на наступний рядок (це називається "прямий стиль). Це також набагато приємніше дивитися, оскільки це відповідає решті JavaScript, ніж .then()
скрізь.
// Example function that returns a Promise that will resolve after 2 seconds
var getGenres = function() {
return new Promise(function(resolve) {
setTimeout(function(){
resolve(['comedy', 'drama', 'action'])
}, 2000);
});
}
// We start an 'async' function to use the 'await' keyword
(async function(){
var result = await getGenres()
console.log('Woo done!', result)
// But the best part is, we can just keep awaiting different stuff, without ugly .then()s
var somethingElse = await getSomethingElse()
var moreThings = await getMoreThings()
})()
Очікування підтримується у всіх поточних браузерах та вузлах
resolve([genre1, genre2, ...]);
всередині виконання обіцянки.