прошу предоставить код на чистом js
Получается в строке, где await result.json(), этот await возвращает в переменную response результат промиса тоже?
async function baf() {
async function bar() {
return await Promise.resolve('bar')
}
async function baz() {
return await Promise.resolve('baz')
}
const a = await bar()
const b = await baz()
return [a, b]
}
const bafPromise = baf() // в место вызова вернётся промис
bafPromise.then(console.log) // ['bar', 'baz']
Вы сами сказали, что fetch возвращает промис, соотвественно в переменную result у нас присваивается экземпляр Promise.
// Определим псевдо фетч.
function pseudoFetch() {
// Определим объект, который будем возвращать.
const hello = {
i: 'Vadim',
say() {
return `Hello world by ${this.i}`
}
}
// Вернём промис
return new Promise((resolve) => {
// вместо xmlhttprequest воспользуемся setTimeout для имитации запроса.
// Через 1500мс зарезолвим промис созданным объектом hello.
setTimeout(() => { resolve(hello) }, 1500)
})
}
// ну а теперь сделаем всё то же самое, что в Ваших примерах, только с нашим псевдо фечём.
pseudoFetch().then(response => response.say()).then(console.log)
// Через 1500мс выведет в консоль Hello world by Vadim
++i
можно рассматривать как эквивалент для выраженияi+=1