//Links to jsfiddle must be accompained by code
var customApi = {
feeds: {
getFeedActivities(feedName, feedId, callback) {
function good(data) {
return callback(data);
}
function bad(result) {
return callback(null);
}
var url = `${origin}/api/feeds/${feedName}/${feedId}`;
callApi(url, null, _GET, good, bad);
},
getUserFeedActivities(userId, callback) {
return getFeed('User', userId, callback);
},
followFeed(feedName, feedId, callback) {
function good(data) {
return callback(data);
}
function bad(result) {
return callback(null);
}
var url = `${origin}/api/feeds/${feedName}/${feedId}`;
callApi(url, null, _GET, good, bad);
}
},
media: {
uploadTemp: function(model, callback) {
function good(data) {
return callback(data);
}
function bad(result) {
return callback(null);
}
var url = origin + "/api/media?type=photo";
callApi(url, model, _POST, good, bad);
},
},
//
我有一堆自定义回调函数,可以通过更通用的回调来处理。我知道如何创建一个通用函数来处理成功或失败的api调用,但有没有办法让我用自定义回调来做呢?
答案 0 :(得分:2)
我给自己一个处理回调的(或版本)callApi
的包装器。这是一个包装器:
function callApi2(url, model, method, callback) {
return callApi(
url,
model,
method,
function(result) {
return callback(result);
},
function() {
return callback(null);
}
);
}
然后followFeed
变为:
followFeed(feedName, feedId, callback) {
var url = `${origin}/api/feeds/${feedName}/${feedId}`;
callApi2(url, null, _GET, callback);
}