我正在尝试使用 NodeJS 中的开放图插件来获取藤蔓的预览图像。 OG 结果是正确的,但我无法从 og 回调中访问 result[i] - 变量未定义。如何在 OG 回调中访问 result[i]?
Thing.find(function(err, result) {
for (var i = 0; i < result.length; i++) {
if (result[i].attachment) {
if (result[i].attachment.embed_type == 'vine') {
og(result[i].attachment.embed_url, function(err, meta) {
result[i].attachment.preview_image = meta.image;
result[i].save();
});
}
}
}
});
最佳答案
你需要一个闭包,i
不断变化,因为of
是异步的
Thing.find(function(err, result) {
for (var i = 0; i < result.length; i++) {
if ( result[i].attachment &&
result[i].attachment.embed_type == 'vine')
{
(function(res) {
og(res.attachment.embed_url, function(err, meta) {
res.attachment.preview_image = meta.image;
res.save();
});
}(result[i]));
}
}
});
关于JavaScript:访问回调内的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29436354/