javascript - 如何访问 XMLHttpRequest 中的类方法?
问题描述
我有一个 javascript 类来管理我的 API 调用(此处为 TimelinesManager),我需要在 XMLHttpRequest.onload 中调用我的管理器的方法(同一个类,名为 arrayToObject)。
我尝试使用 this.arrayToObject() 和 TimelinesManager.arrayToObject() 访问它,但我收到一个错误,表示它不是函数(TypeError:this.arrayToObject 不是函数)。
class TimelinesManager {
getTrends(access_token, start, limit, callback) {
// Create a request to API
var request = new XMLHttpRequest();
request.open('GET', 'https://api.extopy.com/timeline/trends.php', true);
request.onload = function () {
var data = JSON.parse(this.response);
if (request.status == 200) {
// Here I try to access to my class method
callback(this.arrayToObject(data));
}
};
request.send();
}
// The method I want to call
arrayToObject(data) {
// Here I proceed my data
}
}
如何访问此类方法?
解决方案
尝试这个。我们需要把它变成一个变量。as里面的requestthis
是指请求
class TimelinesManager {
getTrends(access_token, start, limit, callback) {
// Create a request to API
let self = this;
var request = new XMLHttpRequest();
request.open('GET', 'https://api.extopy.com/timeline/trends.php', true);
request.onload = function () {
var data = JSON.parse(this.response);
if (request.status == 200) {
// Here I try to access to my class method
callback(self.arrayToObject(data));
}
};
request.send();
}
// The method I want to call
arrayToObject(data) {
// Here I proceed my data
}
}
推荐阅读
- javascript - 如何使用反应钩子清理 useEffect 中的 setInterval
- c++ - 如何使用由指向视频数据的指针创建的 cv::Mat imgbuf
- reactjs - 如何在 Input 标签中为 Bootstrap 滑块定义格式化程序函数?
- python - 批处理文件无法识别并运行第二个(下一个)命令
- chart.js - ChartJS:删除由刻度标签引起的图表右侧的填充
- apache-camel - 如何将未编组的数据处理为原始数据?
- php - 将 textFile 日期保存到 MySQL
- c++ - 如何在另一个类中重载运算符 ==
- python - 使用参考列在数据框中的行值之间进行选择?
- python - 带有 for 循环的 Python 代码不起作用