gpt4 book ai didi

javascript - Dojo:使用 lang.hitch 时无法到达错误回调

转载 作者:行者123 更新时间:2023-11-28 18:52:17 26 4
gpt4 key购买 nike

我正在尝试使用 dojo jsonrest 存储从服务器请求数据。在请求时我正在捕捉回调来做一些事情。例如

this.myStore.get(paramValue).then(lang.hitch(this, function (res) {
//do something like this.globalVal = res;
}, function (err) {
console.log(err);
//throw error
}));

但是上面的代码只有在请求返回成功时才起作用,即在成功返回时进入 deferred 的第一个 block ,但是当发生错误时,它无法到达错误回调因此我无法捕获服务器返回的错误。

如果我在不使用 lang.hitch 的情况下执行上述代码

this.myStore.get(paramValue).then(function (res) {
//do something like this.globalVal = res;
}, function (err) {
console.log(err);
//throw error
});

然后就可以了。即它现在也将到达错误回调,我可以向用户抛出适当的错误。

那么为什么会发生这种情况,如果 lang.hitch 不能与 deferred 一起使用,那么该使用什么呢?

谢谢

最佳答案

Hitch 接受两个参数,上下文和要在前面的上下文中执行的函数。目前您正在使用三个,这是行不通的。您正在尝试将两个功能包装到同一个 Hook 中。您需要将它们分别包裹在单独的 Hook 中:

this.myStore.get(paramValue).then(
lang.hitch(this, function success (res) {
console.log('Success');
}),
lang.hitch(this, function error (err) {
console.log('Error');
})
);

关于javascript - Dojo:使用 lang.hitch 时无法到达错误回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34304007/

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