From fb98636864583e222f67087cbbe487bcfd74a772 Mon Sep 17 00:00:00 2001 From: Michael FIG Date: Thu, 27 Feb 2020 17:35:32 -0800 Subject: [PATCH] fix(makePromise): support HandledPromise.unwrap(p) When used locally, regular Promises don't support unwrap, since they have not travelled through SwingSet's comms system (which makes them all HandledPromises). Using HandledPromise here enables unwrap(p) to be used even if there is no intervening comms system. --- packages/make-promise/package.json | 1 + packages/make-promise/src/makePromise.js | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/make-promise/package.json b/packages/make-promise/package.json index c2a7faaba32..a1f34f88d2d 100644 --- a/packages/make-promise/package.json +++ b/packages/make-promise/package.json @@ -28,6 +28,7 @@ }, "homepage": "https://github.com/Agoric/agoric-sdk#readme", "dependencies": { + "@agoric/eventual-send": "^0.5.0", "@agoric/harden": "^0.0.4" }, "devDependencies": { diff --git a/packages/make-promise/src/makePromise.js b/packages/make-promise/src/makePromise.js index 4b08e9bba76..a9a724966d7 100644 --- a/packages/make-promise/src/makePromise.js +++ b/packages/make-promise/src/makePromise.js @@ -1,9 +1,12 @@ import harden from '@agoric/harden'; +import { HandledPromise } from '@agoric/eventual-send'; export default function makePromise() { let res; let rej; - const p = new Promise((resolve, reject) => { + // We use a HandledPromise so that we can run HandledPromise.unwrap(p) + // even if p doesn't travel through a comms system (like SwingSet's). + const p = new HandledPromise((resolve, reject) => { res = resolve; rej = reject; });