我不知道如何正确地提出我的问题,但是例如我有一些像这样的结构
get_data:function(){
this.unblock();
request("example.com", Meteor.bindEnvironment(function(error, response, body) {
if (!error && response.statusCode == 200) {
$ = Cheerio.load(body);// get HTML of example.com
$(".someclass").each(function() {
if (!somedata_doesnt_exist_in_Mongo) {
request(nexturl, Meteor.bindEnvironment(function(error, response, body)
//... logic
}));
}
});
}
}))
}
主要思想是我从许多网站获取数据,例如agregator,并且有很多像这样的方法。而且很多时候。所以我有两个问题
1 - 对于流星家伙。当我使用this.unblock()
时,这可以确保我的方法在不花时间与客户合作的情况下工作,就像在其他线程中工作一样?
2 - 我如何优化上面的代码结构?
很抱歉,如果它不是StackOverflow格式,但是 我在等待任何帮助!
答案 0 :(得分:0)
this.unblock
仅与每个客户相关。它
允许来自客户端 A 的后续方法调用无需运行
使用上一个方法从该客户端 A 调用完成。
就像在某个意义上的异步工作一样
以前的方法调用不会阻止客户端 A
函数使用this.unblock
。如果您有客户 B ,他/她
无论是否,方法调用都不会阻止 A
你使用this.unblock
。this.unblock
函数的结果时使用this.unblock
。发送电子邮件是最常见的示例。后续方法调用在完成工作之前不需要电子邮件完成发送。对于您的示例,我认为使用this.unblock
应该是好的,但当然这取决于您计划在this.unblock
之后执行代码后对结果执行的操作