From 4236da490a8774674f64f3f45de2290c3923ec7c Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Sat, 11 Jun 2022 19:35:35 +0300 Subject: [PATCH] notes and questions... Signed-off-by: Alex A. Naanou --- Promise.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/Promise.js b/Promise.js index 40af04c..c4a5867 100644 --- a/Promise.js +++ b/Promise.js @@ -63,6 +63,10 @@ var object = require('ig-object') // an array... // // XXX how do we handle errors/rejections??? +// XXX do we need to isolate proxies and "smart" methods??? +// XXX do we need a 1:1 simple version of this?? +// ...i.e a version without element spans... +// // XXX should these be exported??? var iterPromiseProxy = @@ -209,7 +213,7 @@ object.Constructor('IterablePromise', Promise, { // NOTE: the items can be handled out of order because the nested // promises can resolve in any order... // NOTE: since order of execution can not be guaranteed there is no - // point in implementing .reduceRight(..) + // point in implementing .reduceRight(..) (XXX ???) reduce: function(func, res){ return this.constructor(this, function(e){ @@ -275,6 +279,11 @@ object.Constructor('IterablePromise', Promise, { .concat(this) }, + // XXX thses need to stop once an element is found so we cant simply + // use .map(..) or .reduce(..)... + // XXX .find(func) / .findIndex(func) + + // proxy methods... // // These require the whole promise to resolve to trigger. @@ -303,6 +312,11 @@ object.Constructor('IterablePromise', Promise, { last: function(){ return this.at(-1) }, + // NOTE: unlike .reduce(..) this needs the parent fully resolved + // to be able to iterate from the end. + // XXX ??? + reduceRight: promiseProxy('reduceRight'), + // NOTE: there is no way we can do a sync generator returning // promises for values because any promise in .__packed makes the // value count/index non-deterministic... @@ -316,6 +330,7 @@ object.Constructor('IterablePromise', Promise, { values: iterPromiseProxy('values'), indexOf: promiseProxy('indexOf'), + lastIndexOf: promiseProxy('lastIndexOf'), includes: promiseProxy('includes'), every: promiseProxy('every'),