【发布时间】:2016-11-22 02:32:20
【问题描述】:
我正在发出 AJAX 请求,但在处理承诺响应时遇到了问题。在示例中,AJAX 请求是在未显示但称为“requestOriginalDataFromAjax()”的函数内部发出的。
在“promise”形式中它是不可用的,需要用promise.success 函数转换成一个普通的数据对象。但是将promise.success 函数的数据传出是我遇到麻烦的地方。返回的数据总是返回undefined。
这是一个例子:
private convertPromise(){
let requestedData:any = this.requestOriginalDataFromAjax();
let promise:any = requestedData;
promise.success(function (data) {
console.log("data inside my converter: ");
console.log(data);
return data;
});
}
private needToDoSomethingWithTheDataNow(){
let convertedData:any = this.convertPromise();
console.log("returned data: ");
console.log(convertedData);
}
这里是控制台输出:
data inside my converter:
full_data_object: ["blah":"blah"]
returned data:
undefined
我知道过去有人问过这个问题,但经过我所有的研究和阅读,基于之前的例子,我仍然无法理解。
【问题讨论】:
-
promise 上的 return 语句在 lambda 内部返回。
convertPromise函数没有返回任何内容,因此未定义。 -
@JuanmaSerrano 我将值保存到函数外部的变量中并尝试返回它,但它仍然未定义。语法是什么样的?
标签: javascript jquery ajax typescript promise