如何抽象出浏览器窗口对象的用法?

Jaa*_*rus 6 javascript dependency-injection aurelia

window在使用Aurelia框架时,如何抽象出浏览器对象的使用?我想在使用诸如setInterval或等功能时避免直接依赖浏览器addEventListener.

Aurelia有一个名为Platform Abstraction Library的东西,理论上它应该提供我正在寻找的功能.但是,在撰写此问题时,我找不到任何有关它的文档.

Jer*_*yow 10

几个例子:

import {DOM, PLATFORM, FEATURE} from 'aurelia-pal';

PLATFORM.addEventListener('click', e => ...);
PLATFORM.requestAnimationFrame(() => ...);

let event = DOM.createCustomEvent('foo', { bubbles: true });
DOM.dispatchEvent(event);
let element = DOM.createElement('div');

if (FEATURE.shadowDOM && FEATURE.scopedCSS && FEATURE.htmlTemplateElement) {
  ...
}
Run Code Online (Sandbox Code Playgroud)

PAL中没有setTimeout/ 我认为因为aurelia不使用.我添加了一个问题来添加这些.setIntervalsetTimeout