我编写了一个通用的.js crud对象,它包含了用于与服务器通信的所有方法。但是我想避免重复.then和.catch,我想在外部方法中抽象出这个功能。
不确定我尝试实现的目标是否可行。
我的代码如下:
all(url, success, fail){
return new Promise((resolve,reject) => {
_get(url)
.then((response) => {
if (response.status == 200) {
success.call(this,response);
return resolve();
}
})
.catch((error) => {
fail.call(this, error);
reject(error);
});
});}, submit, update .....
仙境想要的结果:
all(url, success, fail){
return new Promise((resolve, reject) => {
_get(url).handle(args);
});
}
答案 0 :(得分:2)
只需避开Promise
constructor antipattern和回调,你就会好起来!
function all(url) {
return _get(url).then((response) => {
if (response.status == 200) {
return response;
}
// most likely you want to `throw` an error here?
});
}