Объект не поддерживает свойство или метод 'записи'
Я работаю с FormData
объект, в то время как мой код хорошо работает в Chrome, Microsoft Edge выплевывает следующее сообщение об ошибке Object doesn't support property or method 'entries'
- что соответствует следующему коду:
for(let pair of formData.entries()) {
...
}
Я пробовал заменить .entries()
С .getAll()
, однако Microsoft Edge не распознает ни один из обоих методов.
есть ли способ получить эту функциональность (перебора FormData
файлы) из Microsoft Edge?
виде FormData Дамп Консоли Microsoft Edge
2 ответов
по сути, polyfill-это способ вручную определить функцию, которая изначально не поддерживается на определенной платформе/браузере.
в вашем случае существует базовое определение функции Object.entries
приведенный здесь:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries#Polyfill
они предоставляют это простое, готовое к развертыванию определение:
if (!Object.entries)
Object.entries = function( obj ){
var ownProps = Object.keys( obj ),
i = ownProps.length,
resArray = new Array(i); // preallocate the Array
while (i--)
resArray[i] = [ownProps[i], obj[ownProps[i]]];
return resArray;
};
глядя на код выше, первое, что он проверяет, если . Если это так, не беспокойтесь, но если это не существует, тогда это создает его... Пока эта функция определяется до того, как вы фактически вызовете ее в своем коде, вы должны быть в порядке.
использовать что-то вроде угловой-cli, они обеспечивают polyfills.TS-файл (который выполняется до запуска приложения), где вы можете разместить такой код или импортировать файлы, содержащие определения, которые вам понадобятся.
Если вы находитесь в угловом приложении, добавьте эту строку в свои поля.файл TS
import 'core-js/es7/object';
он импортирует все новые методы на объекте, включая записи