首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript:无法分配给false的只读属性“_epoch”

Javascript:无法分配给false的只读属性“_epoch”
EN

Stack Overflow用户
提问于 2014-10-17 04:14:17
回答 1查看 18.2K关注 0票数 6

我有一个方法来处理来自google javascript客户端(Gapi)的响应:

代码语言:javascript
复制
var processResponse = function(response) {
              result._state = 'loaded';
              response._epoch = (new Date()).getTime();
              ...

有几次我得到了以下错误:

代码语言:javascript
复制
TypeError: Cannot assign to read only property '_epoch' of false
    at processResponse (http://0.0.0.0:9000/scripts/services/haparaapi.js:110:31)
    at wrappedCallback (http://0.0.0.0:9000/bower_components/angular-scenario/angular-scenario.js:20892:81)
    at http://0.0.0.0:9000/bower_components/angular-scenario/angular-scenario.js:20978:26
    at Scope.$eval (http://0.0.0.0:9000/bower_components/angular-scenario/angular-scenario.js:21967:28)
    at Scope.$digest (http://0.0.0.0:9000/bower_components/angular-scenario/angular-scenario.js:21796:31)
    at Scope.$apply (http://0.0.0.0:9000/bower_components/angular-scenario/angular-scenario.js:22071:24)
    at http://0.0.0.0:9000/bower_components/angular-gapi/modules/gapi-client.js:121:32
    at https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.en_GB.hE_reuZ6VdE.…/ed=1/am=AQ/rs=AGLTcCPj66Crj6soG8dKJE8lBSc_RPXXKA/cb=gapi.loaded_0:604:138
    at https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.en_GB.hE_reuZ6VdE.…/ed=1/am=AQ/rs=AGLTcCPj66Crj6soG8dKJE8lBSc_RPXXKA/cb=gapi.loaded_0:579:311
    at Object.<anonymous> (https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.en_GB.hE_reuZ6VdE.…1/ed=1/am=AQ/rs=AGLTcCPj66Crj6soG8dKJE8lBSc_RPXXKA/cb=gapi.loaded_0:163:76) 

这个bug通常不会发生,所以我没有设法记录下响应的实际情况。

这个错误是什么意思?我不应该为响应赋值吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-21 12:06:25

看起来问题在于你的processResponse()回调实际上被赋予了一个false的值。因此,从本质上讲,您正在尝试将_epoch属性赋值为False值。

请参阅:https://developers.google.com/api-client-library/javascript/reference/referencedocs#gapiclientRequest

从手册中:

请求成功或失败时执行的回调函数。jsonResp包含解析为JSON的响应。如果响应不是JSON,则该字段将为。

当您在严格模式('use strict')下运行javascript时,它将引发一个TypeError,就像您遇到的那样:

代码语言:javascript
复制
'use strict';
var processResponse = function(response) {
    response._epoch = (new Date()).getTime();
};

processResponse(false);   // Uncaught TypeError: Cannot assign to read only property '_epoch' of false 

JSFiddle:http://jsfiddle.net/0tq6mobm/

建议您在尝试将时间戳分配给response之前检查response的值。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26413084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档