本文整理匯總了TypeScript中@ephox/agar.Chain.async方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript Chain.async方法的具體用法?TypeScript Chain.async怎麽用?TypeScript Chain.async使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類@ephox/agar.Chain
的用法示例。
在下文中一共展示了Chain.async方法的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: Theme
UnitTest.asynctest('browser.tinymce.core.InlineEditorSaveTest', (success, failure) => {
Theme();
const settings = {
inline: true,
base_url: '/project/tinymce/js/tinymce'
};
const cAssertBogusExist = Chain.async((val, next, die) => {
UiFinder.findIn(Body.body(), '[data-mce-bogus]').fold(
() => {
die('Should be data-mce-bogus tags present');
},
() => {
next(val);
}
);
});
const cSaveEditor = Chain.op((editor: Editor) => editor.save());
Pipeline.async({}, [
Logger.t('Saving inline editor should not remove data-mce-bogus tags', Chain.asStep({}, [
McEditor.cFromHtml('<div></div>', settings),
ApiChains.cSetRawContent('<p data-mce-bogus="all">b</p><p data-mce-bogus="1">b</p>'),
cSaveEditor,
cAssertBogusExist,
McEditor.cRemove,
]),
)
], function () {
success();
}, failure);
});
示例2: function
const cAssertDialogContents = function (data) {
return Chain.async(function (element, next, die) {
getDialogByElement(element).fold(() => die('No dialog assocated with element'), function (win) {
Assertions.assertEq('asserting dialog contents', data, win.toJSON());
next(element);
});
});
};
示例3: function
const cFindChildWithState = function (selector, predicate) {
return Chain.async(function (scope: Element, next, die) {
const children = PredicateFilter.descendants(scope, function (element) {
return Selectors.is(element, selector) && predicate(element);
});
children.length ? next(children[0]) : die('No children with state');
});
};
示例4: function
const cValidateBookmark = function (rootPath) {
return Chain.async(function (input: any, next, die) {
const root = Hierarchy.follow(Element.fromDom(viewBlock.get()), rootPath).getOrDie();
return input.each(function (b) {
return next(SelectionBookmark.validate(root, b));
});
});
};
示例5: function
const cAssertEditorContent = function (label, expected) {
return Chain.control(
Chain.async(function (editor: any, next, die) {
Assertions.assertHtml(label || 'Asserting editors content', expected, editor.getContent());
next(editor);
}),
Guard.addLogging(`Assert editor content ${expected}`)
);
};
示例6: function
const cAssertEditorDimension = function (dimension, value) {
return Chain.async(function (editor: any, next, die) {
const container = editor.iframeElement;
const getter = dimension === 'width' ? Width.get : Height.get;
const actualValue = typeof value === 'string' ? container.style[dimension] : getter(Element.fromDom(container));
Assertions.assertEq('Editors content area has expected ' + dimension, value, actualValue);
next(editor);
});
};
示例7: function
const cPopupToDialog = function (selector) {
return Chain.fromChains([
ui.cWaitForPopup('Locate popup', selector),
Chain.async(function (container, next, die) {
return Arr.find(editor.windowManager.getWindows(), function (win) {
return container.dom().id === win._id;
}).fold(() => die('Could not find popup window'), function (win) {
next(win);
});
})
]);
};
示例8: function
const cCreateInlineEditor = function (settings) {
return Chain.async(function (viewBlock: any, next, die) {
viewBlock.update('<div id="inline-tiny"></div>');
EditorManager.init(Merger.merge({
selector: '#inline-tiny',
inline: true,
skin_url: '/project/js/tinymce/skins/lightgray',
setup (editor) {
editor.on('SkinLoaded', function () {
next(editor);
});
}
}, settings));
});
};