对于早期的浏览器版本,在Web工作者中未定义Promise。如果Promise未定义,我正在使用import polyfill Promise(' Promise.js')。但我仍然得到一个未定义的对象作为回报。
var promise;
if(typeof Promise === undefined) {
self.importScripts('./Promise.js').Promise;
}
promise = new Promise(function (resolve, reject) {
var url = ajaxArgs.url || '',
data = ajaxArgs.data || {},
type = ajaxArgs.method || 'GET',
isGet = type === 'GET',
request = new XMLHttpRequest();
........
}
如何为网络工作者开展这项工作?
答案 0 :(得分:3)
importScripts
function不会返回任何内容。当您在调用时访问.Promise
属性时,将抛出,并且您的代码将停止执行。顺便说一句,typeof
永远不会返回undefined
,所以你很幸运,它从未被执行过。
if (typeof Promise !== "function") self.importScripts('./Promise.js');
var promise = new Promise(function (resolve, reject) {
…
});