代码之家  ›  专栏  ›  技术社区  ›  Vinyl Warmth

类型错误:对象不支持属性或方法“entries”(IE11)

  •  0
  • Vinyl Warmth  · 技术社区  · 8 年前

    我有一个用Aurelia编写的应用程序需要在IE11中运行。

    直到上周应用程序运行正常,但现在我在控制台中尝试运行它时出现以下错误

    TypeError: Object doesn't support property or method 'entries'
    

    我不知道是什么引起的。我已经回到一个月前的承诺,在那里应用程序肯定在IE11工作,但我得到同样的错误。

    我们正在使用 Yarn 用于包管理 Webpack

    完整堆栈转储为:

    {
       [functions]: ,
       __proto__: { },
       __symbol:__symbol:rxSubscriber0.6484791277649529: undefined,
       __symbol:hasInstance0.64847912776495296: undefined,
       __symbol:isConcatSpreadable0.64847912776495297: undefined,
       __symbol:iterator0.64847912776495291: undefined,
       __symbol:match0.64847912776495292: undefined,
       __symbol:replace0.64847912776495293: undefined,
       __symbol:search0.64847912776495294: undefined,
       __symbol:species0.64847912776495299: undefined,
       __symbol:split0.64847912776495295: undefined,
       __symbol:toPrimitive0.648479127764952910: undefined,
       __symbol:toStringTag0.648479127764952911: undefined,
       __symbol:unscopables0.64847912776495298: undefined,
       description: "Object doesn't support property or method 'entries'",
       message: "Object doesn't support property or method 'entries'",
       name: "TypeError",
       number: -2146827850,
       stack: "TypeError: Object doesn't support property or method 'entries'
       at createSelectors (http://localhost:51158/dist/app.js?v=Q8Lj1h7qjQUyqYO52tjHs-75tv3cmxHiL7p-24hxcAM:28145:9)
       at target.prototype[] (http://localhost:51158/dist/app.js?v=Q8Lj1h7qjQUyqYO52tjHs-75tv3cmxHiL7p-24hxcAM:28176:13)
       at bind (http://localhost:51158/dist/app.js?v=Q8Lj1h7qjQUyqYO52tjHs-75tv3cmxHiL7p-24hxcAM:36702:7)
       at bind (http://localhost:51158/dist/app.js?v=Q8Lj1h7qjQUyqYO52tjHs-75tv3cmxHiL7p-24hxcAM:38733:7)
       at automate (http://localhost:51158/dist/app.js?v=Q8Lj1h7qjQUyqYO52tjHs-75tv3cmxHiL7p-24hxcAM:38678:5)
       at ready (http://localhost:51158/dist/app.js?v=Q8Lj1h7qjQUyqYO52tjHs-75tv3cmxHiL7p-24hxcAM:48132:7)
       at swap (http://localhost:51158/dist/app.js?v=Q8Lj1h7qjQUyqYO52tjHs-75tv3cmxHiL7p-24hxcAM:48161:5)
       at Anonymous function (http://localhost:51158/dist/app.js?v=Q8Lj1h7qjQUyqYO52tjHs-75tv3cmxHiL7p-24hxcAM:48682:9)
       at Anonymous function (http://localhost:51158/dist/app.js?v=Q8Lj1h7qjQUyqYO52tjHs-75tv3cmxHiL7p-2"
    }
    

    我试过看其他的SOF帖子,但我没能找到一个明确的答案,关于我应该做什么-有人能帮忙吗?

    编辑:

    我刚安装 this polyfill 运行了Webpack,现在我得到了这个错误:

    ERROR [app-router] SyntaxError: Syntax error
       "ERROR [app-router]"
       {
          [functions]: ,
          __proto__: { },
          __symbol:__symbol:rxSubscriber0.7605681080912143: undefined,
          __symbol:hasInstance0.76056810809121436: undefined,
          __symbol:isConcatSpreadable0.76056810809121437: undefined,
          __symbol:iterator0.76056810809121431: undefined,
          __symbol:match0.76056810809121432: undefined,
          __symbol:replace0.76056810809121433: undefined,
          __symbol:search0.76056810809121434: undefined,
          __symbol:species0.76056810809121439: undefined,
          __symbol:split0.76056810809121435: undefined,
          __symbol:toPrimitive0.760568108091214310: undefined,
          __symbol:toStringTag0.760568108091214311: undefined,
          __symbol:unscopables0.76056810809121438: undefined,
          description: "Syntax error",
          message: "Syntax error",
          name: "SyntaxError",
          number: -2146827286,
          stack: "SyntaxError: Syntax error
       at tryCatcher (http://localhost:51158/dist/app.js?v=yJ9KRojv8-WpvAUoTKrlQU3TjmNSInH-YMQzLwKD_0g:6757:9)
       at Promise.prototype._settlePromiseFromHandler (http://localhost:51158/dist/app.js?v=yJ9KRojv8-WpvAUoTKrlQU3TjmNSInH-YMQzLwKD_0g:4779:9)
       at Promise.prototype._settlePromise (http://localhost:51158/dist/app.js?v=yJ9KRojv8-WpvAUoTKrlQU3TjmNSInH-YMQzLwKD_0g:4836:13)
       at Promise.prototype._settlePromise0 (http://localhost:51158/dist/app.js?v=yJ9KRojv8-WpvAUoTKrlQU3TjmNSInH-YMQzLwKD_0g:4881:5)
       at Promise.prototype._settlePromises (http://localhost:51158/dist/app.js?v=yJ9KRojv8-WpvAUoTKrlQU3TjmNSInH-YMQzLwKD_0g:4960:13)
       at Async.prototype._drainQueue (http://localhost:51158/dist/app.js?v=yJ9KRojv8-WpvAUoTKrlQU3TjmNSInH-YMQzLwKD_0g:1689:13)
       at Async.prototype._drainQueues (http://localhost:51158/dist/app.js?v=yJ9KRojv8-WpvAUoTKrlQU3TjmNSInH-YMQzLwKD_0g:1699:5)
       at drainQueues (http://localhost:51158/dist/app.js?v=yJ9KRojv8-WpvAUoTKrlQU3TjmNSInH-YMQzLwKD_0g:1573:9)
      "
       }
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   Vinyl Warmth    7 年前

    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;
            };