Given a Passable val whose pass-by-copy structure may contain leaf
promises, return a promise for a replacement Passable,
where that replacement is deeply fulfilled, i.e., its
pass-by-copy structure does not contain any promises.
This is a deep form of Promise.all specialized for Passables. For each
encountered promise, replace it with the deeply fulfilled form of
its fulfillment.
If any of the promises reject, then the promise for the replacement
rejects. If any of the promises never settle, then the promise for
the replacement never settles.
If the replacement would not be Passable, i.e., if val is not
Passable, or if any of the transitive promises fulfill to something
that is not Passable, then the returned promise rejects.
If val or its parts are non-key Passables only because they contain
promises, the deeply fulfilled forms of val or its parts may be keys. This
is for the higher "@endo/patterns" level of abstraction to determine,
because it defines the Key notion in question.
Given a Passable
val
whose pass-by-copy structure may contain leaf promises, return a promise for a replacement Passable, where that replacement is deeply fulfilled, i.e., its pass-by-copy structure does not contain any promises.This is a deep form of
Promise.all
specialized for Passables. For each encountered promise, replace it with the deeply fulfilled form of its fulfillment. If any of the promises reject, then the promise for the replacement rejects. If any of the promises never settle, then the promise for the replacement never settles.If the replacement would not be Passable, i.e., if
val
is not Passable, or if any of the transitive promises fulfill to something that is not Passable, then the returned promise rejects.If
val
or its parts are non-key Passables only because they contain promises, the deeply fulfilled forms of val or its parts may be keys. This is for the higher "@endo/patterns" level of abstraction to determine, because it defines theKey
notion in question.