我正在学习JavaScript承诺,我只是想知道以下代码是否正确。基本上它很简单。加载脚本文件。如果无法加载文件,则会出错。
var promise = new Promise((resolve, reject) => {
var fh = document.createElement('script');
fh.type = 'text/javascript';
fh.async = true;
fh.src = 'script.js';
/*Insert javascript at top of dom */
fhs.parentNode.insertBefore(fh, fhs);
/*Success Response */
fh.addEventListener('load', function (event) {
resolve('Loaded');
}, false);
/*Error Response */
fh.addEventListener("error", function (event) {
reject(Error('Error loading file'));
}, false);
});
答案 0 :(得分:0)
你有一个错字。
fhs.parentNode.insertBefore(fh, fhs);
fhs
未定义。它应该来自哪里?控制台会为您捕获此错误。相反,您可以将脚本元素附加到正文中。
var promise = new Promise((resolve, reject) => {
var fh = document.createElement('script');
fh.async = true;
fh.src = 'script.js';
/*Insert javascript at bottom of dom */
document.body.appendChild(fh);
/*Success Response */
fh.addEventListener('load', () => resolve('Loaded'));
/*Error Response */
fh.addEventListener("error", () => reject(Error('Error loading file')));
});