0
我一直在流星中使用RSS解析器有一個問題,它是一個異步調用,所以它不需要包裝,但它似乎仍然沒有工作。我想這是因爲(「讀」功能匿名在光纖外部,但我看不出如何解決它。異步調用生成「錯誤:無法等待沒有」光纖「,即使_wrapAsync
var FeedParser = Meteor.require('feedparser');
var request = Meteor.require('request');
function getBlog(url, parameter, id){
request(parameter)
.on('error', function (error) {
console.error(error);
})
.pipe(new FeedParser())
.on('error', function (error) {
console.error(error);
})
.on('readable', function() {
var stream = this,
item;
while (item = stream.read()) {
Items.insert(new_item);
}
});
}
var wrappedGetBlog = Meteor._wrapAsync(getBlog);
Meteor.methods({
blog: function (url, parameter, id) {
console.log('parsing blog');
var items = wrappedGetBlog(url, parameter, id);
}
});
感謝您看這個。麻煩的是,這樣做會導致流變量釋放它的上下文,以致它不再擁有stream.read()方法。我發現Feed Parser的語法非常混亂... – Jim
也可以使用光纖。將輸出傳遞迴該方法,並讓它執行插入操作。 – user728291
驚人的,完美的作品。看起來我可能不得不開始理解光纖。 – Jim