鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ 在react中,使用Promise和async報錯:dataPromise.re

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

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);
        // })
    }

圖片描述

回答
編輯回答
命多硬

方法getdata 你return的是"xx",一個字符串。不是一個promise對象。不太明白你這樣寫的目的,建議看下
阮一峰ES6的promise

2017年3月13日 16:46