gpt4 book ai didi

breeze - 查询失败,错误信息是数据

转载 作者:行者123 更新时间:2023-12-02 02:26:00 24 4
gpt4 key购买 nike

friend 的查询失败。幸运的是,他在失败回调中捕获了它(每个服务器调用都有一个失败回调,对吧?)。这是他所拥有的:

var getPersons = function(personsObservable) {    return EntityQuery.from('Person')           .using(manager).execute()           .then(querySucceeded).fail(queryFailed);}function queryFailed(error) {    var msg = 'Error retreiving data. ' + error.message;    logError(msg, error);    throw error;}

error.message 只是显示了 JSON 数据...看起来有点像这样:

"[{"$id":"1","$type":"Person, ProjectName","Id":12,"FirstName":"Bob","LastName":"Smith","Email":"bs@contoso.com","Blog":"http://bs.contoso.com","Twitter": ..." 

什么?他检查了 error.XHR,它提供了用于此查询的完整 AJAX XHR 对象。他可以看到 HTTP 状态代码是 200...这意味着服务器上的一切都很酷。他拥有真实数据这一事实几乎说明了同样的事情。

那么为什么 Breeze 会失败呢?他如何诊断问题?

最佳答案

Breeze 可能失败。但问题很可能出在其他地方。通常,如果 Breeze 失败,则会出现一条有意义的错误消息。该错误消息没有意义。但它确实提供了线索。

首先检查您的成功回调

如果操作失败,则可以调用失败回调;如果操作失败,则可以调用失败回调;如果成功回调失败,则可以调用失败回调。如果操作失败,则说明您遇到了与 Breeze 相关的问题。如果成功回调失败,则可能存在应用程序代码问题。

要确定哪个,请在成功回调的第一行放置一个断点(在本例中,是 querySucceeded 的第一行)。如果您到达断点,您就知道 Breeze 已经完成了它的任务并已将其移交给您。逐步完成您的回调以查找最有可能是您的错误,因此很容易修复。

检查您的自定义 EntityType 构造函数和初始值设定项

在他的例子中,它没有到达成功回调。因此,当 Breeze 尝试从服务器的 JSON 数据中创建缓存实体时,出现了问题。那会是什么?

有很多潜在的原因。可能是 Breeze 错误。不过,最好首先消除飞行员的失误。你写了custom constructor or initializer吗?对于这个EntityType

他做到了。他有一个初始化程序,将 fullName 计算属性添加到他的 Person 中。它看起来有点像这样:

metadataStore.registerEntityTypeCtor('Person', null, personInitializer);function personInitializer(person) {    person.fullName = ko.computed(function () {        return entity.firstName() + ' ' + person.lastName();    });}

他没有发现问题。但按照诊断过程,他在初始化程序上设置了断点

果然……他打错字了……

// "entity" does not exist. Null object errorreturn entity.firstName() + ' ' + person.lastName();

当他将entity更改为person时,一切都很好。

我目前无法解释为什么空对象引用在消息中的 JSON Person 数据中表现为 Q Promise fail 错误。 JavaScript 中会发生奇怪的事情。但线索就在那里:

  • 服务器传送数据
  • 在到达成功回调之前失败
  • 数据与有关
  • 有一个 Person 初始值设定项(或构造函数)

阅读线索,您就会知道去哪里寻找。

希望这个技巧可以帮助您避免白发和秃头。

关于breeze - 查询失败,错误信息是数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14780735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com