[英]node.js + request => node.js + bluebird + request
[英]How can I use npm request module with bluebird in node.js
webCheck.js
var request = require("request");
var Promise = require("bluebird");
module.exports = {
check : function(address){
var length;
request(address).on('response',function(response){
response.on('data',function(data){
length = data.length;
console.log("in : ",length); //
})
});
console.log("out : ",length);
return length;
}
}
main.js
var webCheck = require('./webCheck.js');
module.exports = {
run : function(){
console.log("result : ",webCheck.check("http://localhost:3000/status"));
...
終奌站
out : undefined
result : undefined
in : 821
我想檢查網站的長度。 但是,檢查網站的功能不是同步的。
我想在請求完成后返回長度。
我能怎么做? 我想使用bluebird模塊。
為了能夠將request
模塊與bluebird Promise一起使用, 文檔建議安裝request-promise
。 因此,在安裝request
,還要npm install request-promise
。
然后,您必須確保check
功能返回此承諾,以便調用方可以等待其結果:
var request = require("request-promise");
module.exports = {
check : function(address) {
return request(address)
.on('response', function(response) {
return response;
});
}
}
最后,main.js中的調用需要等待promise解析,然后才能使用結果:
var webCheck = require('./webCheck.js');
module.exports = {
run : function() {
webCheck.check("http://localhost:3000/status").then(function(response) {
console.log(response);
});
}
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.