Как достать PromiseStatus из fetch?

fetch('http://127.0.0.1:8000/sites')
    Promise {<pending>}
    __proto__: Promise
    [[PromiseStatus]]: "pending" // нужны эти значения
    [[PromiseValue]]: undefined
fetch('http://127.0.0.1:8000/sites')
    Promise {<pending>}
    __proto__: Promise
    [[PromiseStatus]]: "resolved" // нужны эти значения
    [[PromiseValue]]: Response

var rr = fetch('http://127.0.0.1:8000/sites')
rr.__proto__   // здесь почему-то не нахожу его

Пояснение, о том где я могу использовать:
export default {
    data(){
        return {
            blockBtn: false
        }
    },
    methods: {
        isWait(url) {
            let dosomething = fetch(url) // get resolved
            var val = "resolved"
            if(val == "pending") this.blockBtn = true;
        }
    }
}
  • Вопрос задан
  • 612 просмотров
Решения вопроса 1
lavezzi1
@lavezzi1
Вам не нужны статусы. Единственное что вам нужно, это узнать что промис разрезолвился. Просто дождитесь этого через await.

Вариант с async/await.
export default {
    data(){
        return {
            blockBtn: false
        }
    },
    methods: {
        async isWait(url) {
            this.blockBtn = true;
            let dosomething = await fetch(url)
            
            this.blockBtn = false;
        }
    }
}


Вариант с then
export default {
    data(){
        return {
            blockBtn: false
        }
    },
    methods: {
        isWait(url) {
            this.blockBtn = true;
            let dosomething = fetch(url).then(() => {
                 this.blockBtn = false;
            });
        }
    }
}


Живой пример: https://jsfiddle.net/ujnpzqgf/

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы