javascript - 使用 ES6 箭头函数作为 AJAX 回调处理程序
问题描述
在Vue 生命周期钩子中,我有以下 AJAX 调用
created: function () {
axios.get(`/list-suppliers/${this.newAwardNdc}`).then(function (response) {
this.supplierCount = _.uniqBy(response.data, 'groupNumber').length;
}.bind(this));
}
是否可以使用箭头函数来处理 AJAX 调用的结果?我尝试了以下
created: function () {
axios.get(`/list-suppliers/${this.newAwardNdc}`).then(response => {
this.supplierCount = _.uniqBy(response.data, 'groupNumber').length;
});
}
但它失败了,因为this
没有正确绑定。
解决方案
您可能想要提供一些额外的上下文,因为您与承诺处理程序箭头函数一起链接的文档工作得非常好。
new Vue({
data: {
a: 1
},
created: function () {
console.log(this.a, this.supplierCount);
axios.get("https://api.myjson.com/bins/xva5k").then(response => {
this.supplierCount = _.uniqBy(response.data, 'groupNumber').length;
console.log(this.a, this.supplierCount);
});
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.0/axios.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
推荐阅读
- php - 为什么我的 PHP 查询显示空白结果
- angular - 使用 *ngIf 检查变量是否未定义
- c# - 如何修复我的不正确序列化的对象列表
- node.js - 使用 Git bash 安装 YoastSEO.js github repo
- swift - Running A Shell Script With Swift in Cocoa
- laravel - Laravel - 当我在请求验证器中添加时找不到路由
- php - PHP测试用户输入的某些值范围
- wordpress - wordpress 中是否有插件或函数来计算数量可变选项中的价格
- python - 如何在通过 ibm watson 中的实验建模器执行超参数优化时修复错误“无法确定运行时间”
- python-3.x - Python 读取 xml