如何从promise返回数据

我需要response.data兑现承诺,以便可以通过封闭函数将其返回。我知道,由于正常的JavaScript范围,我可能无法按照编码的方式进行操作。有什么办法可以做到吗?

位于#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被解决时结果就在那里。

这是HTML5Rocks的资源,它遍历了Promise的生命周期,以及如何异步解决其输出:http

//www.html5rocks.com/zh-cn/tutorials/es6/promises/

以上是 如何从promise返回数据 的全部内容, 来源链接: utcz.com/qa/418371.html

回到顶部