Javascript 如何从嵌套的deferred then()函数返回

Javascript 如何从嵌套的deferred then()函数返回,javascript,Javascript,我需要使用不同的设置进行许多API调用,因此我正在尝试编写一个函数,该函数将接受设置对象并返回文本。在函数化之前,我已经完成了这项工作,但现在我不知道如何获取数据。数据变量在这里很好,但是如何将其传递回应答?我尝试添加一个此引用,这是我当前的尝试 function REST(settings) { var whatIneed; var parent = this; client.request(settings).then( function(data)

我需要使用不同的设置进行许多API调用,因此我正在尝试编写一个函数,该函数将接受设置对象并返回文本。在函数化之前,我已经完成了这项工作,但现在我不知道如何获取数据。
数据
变量在这里很好,但是如何将其传递回
应答
?我尝试添加一个
引用,这是我当前的尝试

 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}

我刚刚阅读了有关该主题的链接超级线程,现在我理解了这个问题。我以前确实像你说的那样直接返回了承诺,但我试图避免大量嵌套回调。我将查看
等待
,谢谢。