【发布时间】:2017-10-31 22:34:31
【问题描述】:
我的 Node.js 代码中有重复的错误处理代码,我怎样才能更好地去除重复的代码。我特别想问一下这个回调方式的错误处理,而不是Promise方式。
var request = require('request');
var URL = 'http://localhost:3000';
var getRanking = function get_rank(error, response, body) {
if (error) {
handleError(error);
} else {
if (response.statusCode != 200) {
handleError(response);
} else {
console.log('Response 1 ' + body);
request(URL + '/iso/country/' + JSON.parse(body).Country, getISO);
}
}
}
var getISO = function get_iso(error, response, body) {
if (error) {
handleError(error);
} else {
if (response.statusCode != 200) {
handleError(response)
} else {
console.log("Response 2 "+body);
request(URL+'/olympic/2016/medal/'+JSON.parse(body).iso,getMedalCount);
}
}
}
var getMedalCount = function get_medal_count(error, response, body) {
if (error) {
handleError(error);
} else {
if (response.statusCode != 200) {
handleError(response);
} else {
console.log("Response 3 " + body);
}
}
}
function handleError(err) {
console.log('Error ' + JSON.stringify(err))
}
request(URL+'/olympic/2016/ranking/4', getRanking);
【问题讨论】:
-
您能否准确指出,您想避免哪些重复项?
-
你的意思是你在每个函数中'handleError'两次?
-
你可以扔掉
error并抓住它。所以它会像:try { request(URL+'/olympic/2016/ranking/4', getRanking); } 捕捉(错误) { 控制台.log(错误); } -
@Lazyexpert 我知道我们可以同时检查错误和 response.statusCode,然后调用 handleError。它将删除一些额外的行,除此之外我可以使代码更好
标签: javascript node.js error-handling callback