本文整理汇总了TypeScript中@wry/context.Slot类的典型用法代码示例。如果您正苦于以下问题:TypeScript Slot类的具体用法?TypeScript Slot怎么用?TypeScript Slot使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Slot类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。
示例1: it
it("works with @wry/context", function () {
const nameSlot = new Slot<string>();
function withName<T = any>(name: string, exec: (task: Task<T>) => void) {
return new Task<T>(task => nameSlot.withValue(name, () => exec(task)));
}
return withName("parent", task => {
assert.strictEqual(nameSlot.getValue(), "parent");
task.resolve(123);
}).then(oneTwoThree => withName("child", child => {
assert.strictEqual(nameSlot.getValue(), "child");
const sibling = withName("sibling", task => {
task.resolve(nameSlot.getValue());
}).then(result => {
assert.strictEqual(result, "sibling");
assert.strictEqual(nameSlot.getValue(), "child");
});
setTimeout(() => {
assert.strictEqual(nameSlot.getValue(), "child");
child.resolve(withName("grandchild", grandchild => {
assert.strictEqual(nameSlot.getValue(), "grandchild");
sibling.then(() => {
assert.strictEqual(nameSlot.getValue(), "grandchild");
grandchild.resolve(oneTwoThree);
}, grandchild.reject);
}));
}, 10);
})).then(result => {
assert.strictEqual(nameSlot.hasValue(), false);
assert.strictEqual(result, 123);
});
});
开发者ID:benjamn,项目名称:wry,代码行数:35,代码来源:tests.ts
示例2:
child.resolve(withName("grandchild", grandchild => {
assert.strictEqual(nameSlot.getValue(), "grandchild");
sibling.then(() => {
assert.strictEqual(nameSlot.getValue(), "grandchild");
grandchild.resolve(oneTwoThree);
}, grandchild.reject);
}));
开发者ID:benjamn,项目名称:wry,代码行数:7,代码来源:tests.ts
示例3: withName
}).then(oneTwoThree => withName("child", child => {
assert.strictEqual(nameSlot.getValue(), "child");
const sibling = withName("sibling", task => {
task.resolve(nameSlot.getValue());
}).then(result => {
assert.strictEqual(result, "sibling");
assert.strictEqual(nameSlot.getValue(), "child");
});
setTimeout(() => {
assert.strictEqual(nameSlot.getValue(), "child");
child.resolve(withName("grandchild", grandchild => {
assert.strictEqual(nameSlot.getValue(), "grandchild");
sibling.then(() => {
assert.strictEqual(nameSlot.getValue(), "grandchild");
grandchild.resolve(oneTwoThree);
}, grandchild.reject);
}));
}, 10);
})).then(result => {
开发者ID:benjamn,项目名称:wry,代码行数:22,代码来源:tests.ts
示例4: exec
return new Task<T>(task => nameSlot.withValue(name, () => exec(task)));
开发者ID:benjamn,项目名称:wry,代码行数:1,代码来源:tests.ts
注:本文中的@wry/context.Slot类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论