【发布时间】:2014-10-29 08:39:51
【问题描述】:
我有一系列递归承诺,它们遍历层次结构,获取当前节点的父节点,直到它到达顶部。我可以得到很好的结果,但我不知道如何存储结果。我正在使用 Bluebird 来创建 getNodeData 承诺。
var getParent = function(node) {
getNodeData(node)
.then(function(node) {
if (term.parent) {
getParent(node.parent);
} else {
//return all the nodes as an array
}
});
};
};
【问题讨论】:
-
如果这是异步代码,您需要返回承诺以允许
.then()完成其工作,并让您能够通过承诺返回最终数据。dataRetriver.getNodeData()返回什么? -
总是
return来自异步函数的承诺! -
@jfriend00 getNodeData 仅使用具有该叶子详细信息的对象进行解析。
-
用对象解析?这是否意味着它会返回一个承诺?隐藏
getNodeData()的实现细节并不能帮助任何人在这里帮助你。如果我从一开始就知道它做了什么,我会在你提出问题的一个小时内发布一个答案,但因此,我仍然对它的了解不够,无法发布一个不是猜测的答案。你必须帮助人们帮助你,而忽略重要的实施细节并不能帮助人们理解你想要做什么。
标签: javascript recursion promise bluebird