在react中,使用Promise和async报错:dataPromise.resolve is not a function

发布于 2022-09-06 15:31:48 字数 2331 浏览 15 评论 0

fetchMockData = () => {
        fetch('mock-data/selectData01.json')
            .then(
                (res) => {
                    return res.json();
                })
            .then(
                (data) =>{
                    //console.log(JSON.stringify(data))
                    var returnData = JSON.stringify();
                    console.log(typeof(returnData))
                    console.log('电信 ===', data['dataChinaTelecom']['emergencyTableData'])
                    return data['dataChinaTelecom']['emergencyTableData']
                })
            .catch(
                (e) => {console.log(e.message);
                });
    }

    async getData() {

        const _self = this;

        try {
            let response = await fetch('mock-data/selectData01.json').then(function(response) {
                return response.json();
            }).then(function(responseThenData) {
                //console.log('responseThenData =',responseThenData);
                return responseThenData
            }).catch(function(e) {
                //console.log("Oops, error");
            });
            let responseData = response;
            console.log('responseData =',responseData);
            return 'xx';
        } catch(e) {
            console.log("Oops, error", e);
        }
    }

    componentDidMount() {
        const _self = this;
        var key = true;
        console.log('this.getData =', this.getData());

        let dataPromise = this.getData();
        console.log('dataPromise =',dataPromise)
        var a = dataPromise.resolve('xx');
        // Promise {[[PromiseStatus]]: "resolved", [[PromiseValue]]: "xx"}
        a.then(function (result) { console.log('result =',result) })

        // var key = true;
        // new Promise(function(resolve, reject){
        //     if(key){
        //         resolve('成功了')
        //     }else{
        //         reject('被拒绝')
        //     }
        // }).then(function(value) {
        //     console.log(value); // key=true 123
        // }, function (rej) {
        //     console.log('---------result reject');
        //     console.log(rej);
        // })
    }

图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

撞了怀 2022-09-13 15:31:48

方法getdata 你return的是"xx",一个字符串。不是一个promise对象。不太明白你这样写的目的,建议看下
阮一峰ES6的promise

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文