本文整理汇总了TypeScript中@phosphor/coreutils.PromiseDelegate.resolve方法的典型用法代码示例。如果您正苦于以下问题:TypeScript PromiseDelegate.resolve方法的具体用法?TypeScript PromiseDelegate.resolve怎么用?TypeScript PromiseDelegate.resolve使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类@phosphor/coreutils.PromiseDelegate
的用法示例。
在下文中一共展示了PromiseDelegate.resolve方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: it
it('should fetch saved data', async () => {
const ready = new PromiseDelegate<void>();
const restorer = new LayoutRestorer({
first: ready.promise,
registry: new CommandRegistry(),
state: new StateDB({ namespace: NAMESPACE })
});
const currentWidget = new Widget();
// The `fresh` attribute is only here to check against the return value.
const dehydrated: ILabShell.ILayout = {
fresh: false,
mainArea: { currentWidget: null, dock: null, mode: null },
leftArea: {
currentWidget,
collapsed: true,
widgets: [currentWidget]
},
rightArea: { collapsed: true, currentWidget: null, widgets: null }
};
restorer.add(currentWidget, 'test-one');
ready.resolve(void 0);
await restorer.restored;
await restorer.save(dehydrated);
const layout = await restorer.fetch();
expect(layout).to.deep.equal(dehydrated);
});
示例2:
execute: (args: IRouter.ILocation) => {
const { hash, path, search } = args;
const query = URLExt.queryStringToObject(search || '');
const reset = 'reset' in query;
if (!reset) {
return;
}
// If the state database has already been resolved, resetting is
// impossible without reloading.
if (resolved) {
return document.location.reload();
}
// Empty the state database.
resolved = true;
transform.resolve({ type: 'clear', contents: null });
// Maintain the query string parameters but remove `reset`.
delete query['reset'];
const url = path + URLExt.objectToQueryString(query) + hash;
const cleared = commands.execute(CommandIDs.recoverState)
.then(() => router.stop); // Stop routing before new route navigation.
// After the state has been reset, navigate to the URL.
cleared.then(() => { router.navigate(url, { silent: true }); });
return cleared;
}
示例3: it
it('should restore the widgets in a tracker', done => {
let tracker = new InstanceTracker<Widget>({
namespace: 'foo-widget',
shell: new ApplicationShell()
});
let registry = new CommandRegistry();
let state = new StateDB({ namespace: NAMESPACE });
let ready = new PromiseDelegate<void>();
let restorer = new LayoutRestorer({
first: ready.promise, registry, state
});
let called = false;
let key = `${tracker.namespace}:${tracker.namespace}`;
registry.addCommand(tracker.namespace, {
execute: () => { called = true; }
});
state.save(key, { data: null }).then(() => {
return restorer.restore(tracker, {
args: () => null,
name: () => tracker.namespace,
command: tracker.namespace
});
}).catch(done);
ready.resolve(void 0);
restorer.restored.then(() => { expect(called).to.be(true); })
.then(() => state.remove(key))
.then(() => { done(); })
.catch(done);
});
示例4: it
it('should allow an overwrite data transformation', async () => {
const transform = new PromiseDelegate<StateDB.DataTransform>();
const db = new StateDB({
namespace: 'test',
transform: transform.promise
});
const prepopulate = new StateDB({ namespace: 'test' });
const key = 'foo';
const correct = 'bar';
const incorrect = 'baz';
const transformation: StateDB.DataTransform = {
type: 'overwrite',
contents: { [key]: correct }
};
// By sharing a namespace, the two databases will share data.
await prepopulate.save(key, incorrect);
let value = await prepopulate.fetch(key);
expect(value).to.equal(incorrect);
transform.resolve(transformation);
await transform.promise;
value = await db.fetch(key);
expect(value).to.equal(correct);
await db.clear();
});
示例5: it
it('should resolve the underlying promise', done => {
let delegate = new PromiseDelegate<number>();
delegate.promise.then(value => {
expect(value).to.equal(1);
done();
});
delegate.resolve(1);
});
示例6:
.then(saved => {
// If this command is called after a reset, the state database
// will already be resolved.
if (!resolved) {
resolved = true;
transform.resolve({ type: 'overwrite', contents: saved.data });
}
})