handle.js 818 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /**
  2. * 用于处理异步函数的错误
  3. * @param promise {Promise} 异步函数
  4. * @returns {Promise<Array>} [err, val]
  5. */
  6. export function handle (promise){
  7. return new Promise(resolve => {
  8. try{
  9. promise.then(val => {
  10. resolve([null, val])
  11. }).catch(err => {
  12. resolve([err,null])
  13. })
  14. }catch(err){
  15. resolve([err,null])
  16. }
  17. })
  18. }
  19. export function handleAll() {
  20. return new Promise(resolve => {
  21. try{
  22. // arguments 转数组
  23. let arr = [...arguments]
  24. // console.log(arr)
  25. // console.log(typeof arr)
  26. Promise.all(arr).then(val => {
  27. // console.log(val);
  28. resolve([null, ...val])
  29. }).catch(err => {
  30. resolve([err])
  31. })
  32. }catch(err){
  33. resolve([err])
  34. }
  35. })
  36. }
  37. export default {
  38. handle,
  39. handleAll
  40. }