javascript - 从 JavaScript 结果中获取 responseJson
问题描述
我正在创建一条返回所有产品名称的路线。但是使用 javascript 代码是这样写的:
getSku: function () {
return $.getJSON(Routing.generate(this.options.urls.get))
.promise();
},
因此,到目前为止,我无法从该响应中提取数据。如果我控制台记录这个 getSku,我会得到:
{state: ƒ, always: ƒ, then: ƒ, promise: ƒ, pipe: ƒ, …}
always:ƒ ()
done : ƒ ()
fail : ƒ ()
pipe : ƒ ( /* fnDone, fnFail, fnProgress */ )
progress : ƒ ()
promise : ƒ ()
state : ƒ ()
then :ƒ ( /* fnDone, fnFail, fnProgress */ )
__proto__:Object
当我删除 .promise() 我得到:
{readyState: 1, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}
abort:ƒ ( statusText )
always:ƒ ()
complete:ƒ ()
done:ƒ ()
error:ƒ ()
fail:ƒ ()
getAllResponseHeaders:ƒ ()
getResponseHeader:ƒ ( key )
overrideMimeType:ƒ ( type )
pipe:ƒ ( /* fnDone, fnFail, fnProgress */ )
progress:ƒ ()
promise:ƒ ()
readyState:4
responseJSON:Array(5)
0:{id: 1, identifier: "test_1", label: "test_1"}
1:{id: 2, identifier: "1000000", label: "1000000"}
2:{id: 3, identifier: "1000001", label: "1000001"}
3:{id: 4, identifier: "1000002", label: "1000002"}
4:{id: 5, identifier: "1000003", label: "1000003"}
我需要以某种方式捕捉该 responseJson 结果。但我不知道如何抓住它。它是一个骨干。我一直在寻找各种解决方案,但我总是返回未定义。请帮我弄清楚如何获得这个 json 结果。谢谢。
解决方案
尝试以下操作:
getSku: function () {
return $.getJSON(Routing.generate(this.options.urls.get))
.promise();
}
当您调用 getSku() 时,它会返回一个 Promise 对象。您需要等待 promise 解决或无法处理结果,如下所示。
getSku().done((data) => {
console.log(data);
}).fail(() => {
console.log( "something went wrong" );
});
要了解有关承诺的更多信息:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
推荐阅读
- android - TextureView 无法获取 EGL3 for Emulator 的上下文
- windows - 仅当目标子文件夹中不存在文件时,如何将所有文件从一个目录复制到另一个目录?
- java - Hibernate 无法找到具有多对一的适当构造函数
- elasticsearch - ElasticSearch 中有没有办法在顶部获得最短(最近)的单词?
- ms-access - SQL 注入和访问宏(不是 VBA)
- r - 如何将谷歌 API 密钥传递给 get_maps?
- node.js - 如果失败,猫鼬订购的 Model.insertMany 是否会向数据库写入任何内容?
- python - 计算矩阵的特征值作为参数的函数
- java - 是否可以在 Spring Boot 中解析依赖 JAR 文件的 REST 端点
- javascript - 带有动态引导菜单的 reactJS