handle_cjs.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*
  2. * @Description:
  3. * @Autor: kindring
  4. * @Date: 2021-12-14 15:19:56
  5. * @LastEditors: kindring
  6. * @LastEditTime: 2021-12-14 17:17:09
  7. * @LastDescript:
  8. */
  9. function handle_cjs(promise) {
  10. return new Promise(resolve => {
  11. try{
  12. if(!promise || typeof promise.then !== 'function'){
  13. return resolve([null,promise]);
  14. }
  15. promise.then(val => {
  16. resolve([null, val])
  17. }).catch(err => {
  18. resolve([err])
  19. })
  20. }catch(err){
  21. resolve([err])
  22. }
  23. })
  24. }
  25. // 支持多个promise的并行执行
  26. function handleAll() {
  27. return new Promise(resolve => {
  28. try{
  29. // arguments 转数组
  30. let arr = [...arguments]
  31. // console.log(arr)
  32. // console.log(typeof arr)
  33. Promise.all(arr).then(val => {
  34. console.log(val);
  35. resolve([null, ...val])
  36. }).catch(err => {
  37. console.log(err)
  38. console.log(`promise all`)
  39. resolve([err])
  40. })
  41. }catch(err){
  42. resolve([err])
  43. }
  44. })
  45. }
  46. module.exports = {
  47. handle: handle_cjs,
  48. handleAll
  49. };