【发布时间】:2013-12-04 00:34:48
【问题描述】:
我正在尝试合并我通过 Ajax 作为 JSON 接收的两个对象,但我无法访问该变量并将其声明为全局的。我做错了什么?
var parametroswatcher = {
// asinid: $('#rate').attr('data-id'),
asinid: GetURLParameter('asin'),
mod: '0'
};
var post = $.post("../../likes/like.php", parametros, 'json');
post.done(function( data ) {
postdata = jQuery.parseJSON(data);
});
var postwatch = $.post("../../watcher/watch.php", parametroswatcher, 'json');
postwatch.done(function( data ) {
postwatchdata = jQuery.parseJSON(data);
});
var postmerge = $.extend(postdata,postwatchdata);
console.log(postmerge);
postdata = jQuery.parseJSON(data)的答案应该是:
{"resplike":"needlogin"}.
postwatchdata = jQuery.parseJSON(data) 的答案应该是:
{"respwatch":"needlogin"}.
但要访问控制台,我没有得到 postdata 和 postwatchdata 合并,而是得到一个空对象。
Object {} product.js:61
编辑: 我想在 post 和 postwatch 完成后,在 product 函数中使用数据。
postdata = jQuery.parseJSON(data) 的答案应该是:{"resplike":"needlogin"}。
而 postwatchdata = jQuery.parseJSON(data) 的答案应该是:{"respwatch":"needlogin"}。
功能产品(数据){
var obj = jQuery.parseJSON(data);
if (obj.resplike=='like'){
var respuesta = 'No te gusta';
}
否则如果(obj.resplike=='不喜欢'){
var respuesta = 'Te gusta';..blabla
我想进入 obj: {"resplike":"needlogin", "respwatch":"needlogin"}
【问题讨论】:
-
postmerge在您的异步调用返回之前设置。 -
即使您收到的是 JSON,但问题实际上与 JSON 无关。这是关于如何合并 JavaScript 对象 并处理多个 Ajax 调用。
标签: javascript jquery