我需要使用不同的设置进行许多API调用,因此我试图编写一个将接受设置对象并返回文本的函数。在对功能进行功能化之前,我已经进行了这项工作,但是现在我不知道如何获取数据。 data
变量在这里很好,但是如何将其传递回answer
?我尝试添加一个this
引用,这是我目前的尝试。
function REST(settings) {
var whatIneed;
var parent = this;
client.request(settings).then(
function(data) {
console.log(data);
parent.whatIneed = data;
},
function(response) { PromiseError(response); } )
console.log(whatIneed);
return whatIneed;
}
answer = REST(settings);
答案 0 :(得分:0)
您的问题是您正在使用异步调用,该调用以同步方式返回promise。当您在whatIneed
的末尾返回REST
时,其值仍为undefined
,因为尚未执行then
调用中的client
块。>
如果您使用的是转译器,则可以使用await
等待数据再返回,也可以直接从REST
返回promise,然后像REST(settings).then(function(data) { // do something})