From 9813e9b3d8278dc510e46fd1f85e28a34a22d516 Mon Sep 17 00:00:00 2001 From: Naoya Yamashita Date: Sat, 6 Mar 2021 02:26:04 +0900 Subject: [PATCH 1/2] promise-race take just promise list --- promise-es6-extensions.el | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/promise-es6-extensions.el b/promise-es6-extensions.el index defa1ce..6f0f513 100644 --- a/promise-es6-extensions.el +++ b/promise-es6-extensions.el @@ -149,12 +149,13 @@ (promise-new (lambda (_resolve reject) (funcall reject value)))) -(defun promise-race (values) - (promise-new (lambda (resolve reject) - (cl-loop for value across (cl-coerce values 'vector) - do (promise-then (promise-resolve value) - resolve - reject))))) +(defun promise-race (&rest values) + (let ((values* (if (promise-class-p (car values)) values (car values)))) + (promise-new (lambda (resolve reject) + (cl-loop for value across (cl-coerce values* 'vector) + do (promise-then (promise-resolve value) + resolve + reject)))))) (cl-defmethod promise-catch ((this promise-class) on-rejected) (promise-then this nil on-rejected)) From 8a9e1288bf519e3a9e7d42522cd842f3213a24c4 Mon Sep 17 00:00:00 2001 From: Naoya Yamashita Date: Sat, 6 Mar 2021 02:34:11 +0900 Subject: [PATCH 2/2] promise-all take just promise list --- promise-es6-extensions.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/promise-es6-extensions.el b/promise-es6-extensions.el index 6f0f513..5ca85ca 100644 --- a/promise-es6-extensions.el +++ b/promise-es6-extensions.el @@ -97,8 +97,8 @@ (t (promise--value value)))) -(defun promise-all (arr) - (let ((args (cl-coerce arr 'vector))) +(defun promise-all (&rest arr) + (let ((args (cl-coerce (if (promise-class-p (car arr)) arr (car arr)) 'vector))) (promise-new (lambda (resolve reject)