我需要从这段代码返回结果变量,我正在尝试大约一小时,但仍然没有成功......你能帮帮我吗?我也研究了对象,但没有成功......
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
});
}
答案 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,在函数中,应该有两个参数resolved
,rejected
,你可以通过你的返回值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()');