猿问

关于then中的值的读取方法

class List {

    constructor(url, args, list) {

        this.url = url;

        this.args = args;

        this.list = list;

    }


    getData() {

        ajax.request({url: this.url, args: this.args})

            .then(function (contents) {

                this.list.data = contents;

                // console.log(contents);

            },function (err) {

                console.error(err);

            });

    }

}


class DataList extends List {

    constructor(url, args, list) {

        super(url, args, list);

    }

}



class SearchList extends List {

    constructor(url, args, list) {

        super(url, args, list);

    }

}




//test

let obj = {};

let dataList = new DataList('/getData/dataList', null, obj);


dataList.getData();


console.log(dataList);

ajax是另外一个文件中定义的一个方法,传入的参数是一个对象。


问题一:List类里的getData方法中的this.list报错,不知道为什么?求大神解答!

问题二:想做的就是从then里边读出contents,有没有其他更好的方法能够读出来呢?(除了console.log)目前能想到的就只有存在某个对象的属性中,其他测试了一下都读不到contents的值。


浮云间
浏览 1007回答 2
2回答

波斯汪

问题一:this作用域的问题,改成箭头函数即可ajax.request({url: this.url, args: this.args}).then((contents) => {    this.list.data = contents;    // console.log(contents);},function (err) {    console.error(err);});问题2没有看懂,如果不想从console.log看,那就从调式工具的network看,数据给的格式如果想在控制台里打印的数据美观点,可以用console.table

12345678_0001

用 await async 语法
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答