从对象返回变量

时间:2015-09-23 15:22:02

标签: ajax variables object return

我需要从这段代码返回结果变量,我正在尝试大约一小时,但仍然没有成功......你能帮帮我吗?我也研究了对象,但没有成功......

api.prototype.ajax = function()
{
    marmottajax({
                            url: "http://localhost:8080/bp/stranka/api/test",
                            method: "post",
                            parameters: 
                            {
                                image: 8,
                                by: "click"
                            }
                        }).then(function(result) 
                        {
                            result; //this variable i want to get/return to my function
                        });
}

2 个答案:

答案 0 :(得分:1)

您无法从AJAX调用中return - 您需要使用promises或回调。这是一个回调示例:

api.prototype.ajax = function(callback) {
    marmottajax({
        url: "http://localhost:8080/bp/stranka/api/test",
        method: "post",
        parameters: {
            image: 8,
            by: "click"
        }
    }).then(function(result) {
        callback(result); //this variable i want to get/return to my function
    });
}

并使用它:

api.ajax(function(data) {
    console.log(data);
});

答案 1 :(得分:1)

我刚刚了解了承诺:P,我可以帮忙。因为我看到你正在使用,我想知道你是否正在使用Promise。如果你使用Promise,在函数中,应该有两个参数resolvedrejected,你可以通过你的返回值resolved功能。

这是一个可以帮助你的例子! source url

var promise = new Promise(
function(resolve, reject) {
  console.log('in Promise constructor function');
  setTimeout(function() {
    console.log('in setTimeout callback');
    if (Math.random() > 0.5){
      resolve('Here is your data');
    } else {
      reject('Something happend, it causes error');
    } 
  }, 100);
});
console.log('created promise');
promise.then(
  function(result) {
    console.log('promise returned: ' + result);
  },
  function(err){
    console.log(err);
  }
);
console.log('hooked promise.then()');