at.js
var main = {
h: () => {
return 1 + 1;
},
get: ()=> {
client.get('access_token', (err, reply) => {
// reply is null when the key is missing
//console.log(reply);
if (!reply) {//为空,更新access_token
//console.log("refresh")
request(url, function (error, response, body) {
var ms = JSON.parse(body)
client.set('access_token', ms.access_token)
client.expire('access_token', ms.expires_in)
});
return ms.access_token
}
else {
return reply
}
});
}
}
module.exports = main;
main.js
var access_token=require('./at');
console.log(access_token.h())
console.log("___")
console.log(access_token.get())
node main
输出的结果是
2
————————
undefined
请问要怎么修改get,使得在main中调用时达到调用h时直接输出结果?
使用回调函数
或者使用 async函数 在main.js使用await access_token.get()
题主的意思应该是不想重复请求接口,可以采取类似的方法,设置一个变量保存,存在的话就不请求直接返回,不存在的话再去请求接口
a.js
main.js