我一直在努力研究自己的承诺,异步调用以及如何在AngularJS中链接它们的基础知识。目前我正在维护一个喜欢在任何地方使用它们的应用程序,作为一个新手,他们至少可以说是压倒性的。
首先,我在服务器端(node.js)中有这个代码,用于检索经理的直接报告列表。这就是前一个开发者的做法,所以我用它作为指南:
exports.findDirectReports = function (req, res) {
var empnum = req.params.empnum;
queries.getDirectReports(empnum)
.then(function (users) {
return res.json(users);
})
.catch(function (err) {
handleError(res, err);
});
};
我理解(或者我认为理解):
queries.getDirectReports
将首先执行,并将列表作为承诺返回。then()
。return res.json(users)
结果将被传递给任何调用它以在其他操作中使用的人。我的问题是获得解决的承诺。我知道我不会立即得到结果,因为async
。find()
。但我有null
使用这些结果作为条件,每次检查结果时我总是得到[]
或exports.downloadEmployee = function (req, res) {
/*
"queries" - alias for another server-side node.js (not really sure what to call
this exactly) that contains the entire getDirectReports fxn.
*/
queries.getDirectReports(empnum)
.then(function (users) {
EmployeeInfo.find({}, function (err, results) {
var tempCtr = [];
if (err) { return err; }
/*
Use results of getDirectReports here as condition
where if employee exists, program will execute
_.forEach below.
*/
_.forEach(results, function (item) {
tempCtr.push({
employeeID: item.employeeID,
employeeName: item.employeeName
});
});
return res.json(tempCtr);
});
})
.catch(function (err) {
handleError(res, err);
});
}
。
这里有问题的功能(也是服务器端node.js):
callbacks
我已经在这里看到了某些地方,我需要利用127.0.0.1
,但我并不是真的了解如何。一些代码示例与我之前尝试过的代码示例类似(但没有用)。
任何答案都将不胜感激。
谢谢。
答案 0 :(得分:2)
你需要<div class="sidebar">
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
</ul>
</div>
来自函数的承诺
return
承诺是异步的,所以没有办法让这个解决#34;立即&#34;并且您将需要处理从中调用此函数的promise的解析。