var shortLinks = [];
Link.find({}, function (err, links) {
if (err) {
console.log(err);
} else {
links.map(link => {
shortLinks.push(link.shortLink);
});
}
console.log(shortLinks);//shortLinks has values, all okey
});
console.log(shortLinks); //shortLinks is empty
我需要在Link.find({})之后使用shortLinks,但是数组为空。 需要返回短链接。
答案 0 :(得分:0)
回调。 function(err, links)
是异步调用的,因此在调用该函数之前不会填充shortLinks
。由于回调的工作原理,首先会调用您的底部console.log
。
答案 1 :(得分:0)
需要使用承诺:
const shortLinks = [];
const getShortLinks = Link.find({}, function (err, links) {
if (err) {
console.log(err);
} else {
links.map(link => {
shortLinks.push(link.shortLink);
});
}
});
getShortLinks.then(function(links){
console.log(shortLinks);
}, function(err){
console.log(err);
});