承诺js方法时如何避免逻辑重复? [英] How to avoid logic duplication when promisifying js methods?

查看:51
本文介绍了承诺js方法时如何避免逻辑重复?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

最近我接受了 Promise 链接模式.这样做很方便:

Recently I embraced promises chaining pattern. It's very convenient to do like this:

action1
.then(()=> action2())
.then(()=> action3());

但是,为了做到这一点,我改变了我所有的方法(TypeScript):

But, in order to do it I changed all my methods like this (TypeScript):

action1() : Promise<any>{
  try{
     // actual code
     return Promise.resolve();
  } catch (err){
     console.error(err);
     return Promise.reject(err);
  }
}

这看起来像是非常重复的模式.避免代码重复的最佳方法是什么?

This looks like very repetitive pattern. What's the best way to avoid code duplication?

推荐答案

编写一个函数将 promise 封装在一个函数上,你可以重用它

Write a function to wrap promise over a function and you can reuse it

wrapPromise(fun) : Promise<any>{
  try{
     var value = fun()
     return Promise.resolve(value);
  } catch (err){
     console.error(err);
     return Promise.reject(err);
  }
}


wrapPromise(action1).then()

这篇关于承诺js方法时如何避免逻辑重复?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆