【发布时间】:2015-11-27 22:18:50
【问题描述】:
我正在制作一个 MeteorJS 应用程序,我从远程 API 获取多个文件。
一个 API 记录可以有多个文件 - 我想下载它们,保存在我的 Media 集合中,然后检索它们的 ID 以存储到另一个集合中(例如 NotMedia):
// Client side: apiArr is an array with api json objects
for(var a in apiArr){
var pic1_id = Meteor.call('saveMedia', apiArr[a].image1_url);
var pic2_id = Meteor.call('saveMedia', apiArr[a].image2_url);
var collection = {
name: apiArr[a].name,
description: apiArr[a].desc,
image1_id: pic1_id,
image2_id: pic2_id
};
NotMedia.insert(collection);
}
我的 Meteor 方法:
//Server side:
Meteor.methods({
saveMedia: function(media){
var file = new FS.File();
file.attachData(media, function(err){
if(err){
throw err;
}
file.origin_name = media;
var id = Media.insert(file);
return id;
});
},
});
但是当我检索保存的NotMedia 记录时,image_id 是undefined。我知道NotMedia 插入完成比保存图像文件快,但是我怎样才能同步/等待Meteor.calls 完成?
【问题讨论】:
-
你可以使用 Promise 做到这一点:stackoverflow.com/questions/28633187/…
标签: node.js asynchronous meteor async-await