Javascript 如何从嵌套的deferred then()函数返回
我需要使用不同的设置进行许多API调用,因此我正在尝试编写一个函数,该函数将接受设置对象并返回文本。在函数化之前,我已经完成了这项工作,但现在我不知道如何获取数据。Javascript 如何从嵌套的deferred then()函数返回,javascript,Javascript,我需要使用不同的设置进行许多API调用,因此我正在尝试编写一个函数,该函数将接受设置对象并返回文本。在函数化之前,我已经完成了这项工作,但现在我不知道如何获取数据。数据变量在这里很好,但是如何将其传递回应答?我尝试添加一个此引用,这是我当前的尝试 function REST(settings) { var whatIneed; var parent = this; client.request(settings).then( function(data)
数据
变量在这里很好,但是如何将其传递回应答
?我尝试添加一个此
引用,这是我当前的尝试
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);
您的问题是,您正在使用一个异步调用,该调用以同步方式返回承诺。当您在
REST
结束时返回whatIneed
时,其值仍将是未定义的
,因为然后来自客户端的块
调用尚未执行
如果您使用的是transpiler,您可以使用wait
在返回数据之前等待数据,或者您可以直接从REST
返回承诺,然后像REST(设置)一样使用它。然后(函数(数据){//do something}我刚刚阅读了有关该主题的链接超级线程,现在我理解了这个问题。我以前确实像你说的那样直接返回了承诺,但我试图避免大量嵌套回调。我将查看等待
,谢谢。