我需要response.data兑现承诺,以便可以通过封闭函数将其返回。我知道,由于正常的JavaScript范围,我可能无法按照编码的方式进行操作。有什么办法可以做到吗?
response.data
位于#1 的 console.log 会生成正确的数据。 console.log #2总是产生’a’;
function addSiteParentId(nodeId) { var theParentId = 'a'; var parentId = relationsManagerResource.GetParentId(nodeId) .then(function(response){ theParentId = response.data; console.log(theParentId); // #1 }); console.log(theParentId); // #2 return theParentId; }
任何指针将不胜感激。
许诺背后的基本原则之一是它是异步处理的。这意味着您无法创建承诺,然后立即在代码中同步使用其结果(例如,不可能从启动承诺的函数中返回承诺的结果)。
相反,您可能想做的是 返回整个承诺本身。然后,任何需要其结果的函数都可以调用.then()promise,并且在promise被解决时结果就在那里。
.then()