在meteor.http.get方法中,如何等待页面加载,如说5秒钟

时间:2017-03-01 12:06:24

标签: http meteor

如何等待页面加载,如说5秒钟 在我的程序中,站点在显示内容之前等待浏览器检查5秒,因此我希望我的http.get(url)函数等待至少5秒。 没有等待,它不会显示任何内容 感谢。

2 个答案:

答案 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}然后同步

来做同样的事情。