如何等待页面加载,如说5秒钟 在我的程序中,站点在显示内容之前等待浏览器检查5秒,因此我希望我的http.get(url)函数等待至少5秒。 没有等待,它不会显示任何内容 感谢。
答案 0 :(得分:0)
根据您的意见,我现在明白您要做的事情,并修改了这个答案。
不幸的是,没有办法配置Meteor HTTP(它确实使用了 request使服务调用)在请求启动后“等待”,然后才能获得响应。你要做的最好的事情是结账PhantomJS。它是一个无头浏览器,您可以使用它来加载和呈现页面,然后通过javascript访问动态生成的内容。
查看此answer以获取简短的PhantomJS示例,您可以使用gadicohen:phantomjs软件包为meteor安装。
另一方面,使用以下功能在Meteor中暂停执行仍然很有用,但当然这对你要解决的问题没有用。
Meteor._sleepForMs(5000); // pause execution for 5 seconds
答案 1 :(得分:0)
http包是建立在npm的请求包之上的。您可以直接使用请求包执行此操作:
var request = require('request');
var reqOptions = {
url: path,
method: 'GET',
encoding: "utf8",
jar: false,
timeout: null,
body: null,
followRedirect: null,
followAllRedirects: null,
headers: {},
time:true
};
request(reqOptions, function(error, response, body) {
console.log("time: "+response.elapsedTime)
console.log(body.toString()); //res.content returned by http.get
});
require('sleep').sleep(5); //synchronously slowing execution
你也可以通过在http调用的npmOptions参数中设置{time:true}然后同步
来做同样的事情。