在我的小程序中,我尝试取消缩短 URL,然后检查链接是否与我的模式匹配。如果是,我想进一步处理它。但我还需要应用以前已知的 3 个参数。
将所有 3 个参数拖到每个函数中时,我的代码感觉非常笨拙。我如何在没有承诺的情况下简化这一点?
var request = require("request");
function expandUrl(shortUrl, a,b,c, callback) {
request( { method: "HEAD", url: shortUrl, followAllRedirects: true },
function (error, response) {
callback(response.request.href, a,b,c);
});
}
function checklink(unshortenedLink, a, b, c){
matches = unshortenedLink.match(/twitter\.com\/\w+/g);
if(matches){
matches.forEach(function(result){
process_twitter_link(result, a, b, c);
});
}
}
function process_twitter_link(link, a, b ,c ){
console.log(link + " " + a + " " + b + " " + c);
// std.out: twitter.com/StackJava param_a param_b param_c
}
expandUrl("https://t.co/W0DA8WVpmO", "param_a", "param_b", "param_c", checklink);