我有两个文件,其中one.js包含所有模块,而这些模块在two.js文件中调用。但每当我收到请求时,该函数都不会等待。我知道节点是异步的。有没有办法处理没有回调的功能
//File one.js
function getRequest(){
var url = "https://api.hasoffers.com/v3/Affiliate_Affiliate.json";
request(url, function (err, reponse, value) {
return JSON.parse(value);
});
}
exports.getRequest = getRequest;
//File two.js
var one = require(one.js);
console.log(one.getRequest()); //Returns undefined
我需要以相同的方式调用two.js文件中的函数one.getRequest();
而不进行任何回调。
答案 0 :(得分:0)
您需要使用承诺或回调
function getRequest(callback){
var url = "https://api.hasoffers.com/v3/Affiliate_Affiliate.json";
request(url, function (err, reponse, value) {
callback(JSON.parse(value));
});
}
//文件two.js
var one = require(one.js);
one.getRequest(function(result){console.log(result)});
答案 1 :(得分:0)
您可以使用以下内容:
//File one.js
function getRequest(){
this.url = "https://api.hasoffers.com/v3/Affiliate_Affiliate.json";
}
getRequest.prtotype.request=function() {
request(this.url, function (err, reponse, value) {
return JSON.parse(value);
});
});
exports.getRequest = getRequest;
//File two.js
var one = require(one.js);
one=new one ();
console.log(one.request());