gpt4 book ai didi

javascript - Angular 应用程序中 Javascript 中的方法链

转载 作者:行者123 更新时间:2023-11-29 19:12:24 25 4
gpt4 key购买 nike

在我的 Angular 网络应用程序中,我有一个名为 ApplicationModule 的模块。ApplicationModule 具有getset 功能。

在我的一个 Controller 中,我调用如下函数:

ApplicationModule.get().then(function (response) {
//do something with response
});

GET() 函数返回一个名为application 的对象。对于返回的对象,我想用它做点什么。所以我使用 then 链接该方法,但我收到一条错误消息:angular.js:13424 TypeError: Cannot read property 'then' of undefined

更新了 get() 是什么。

ApplicationModule.get = function () {
if (!localStorage.application) {
Restangular.all('session').one('user').get().then(function (response) {
application = {
"id": response.current_application_id,
"user_id": response.id,
"visa_type": response.current_type
}
localStorage.setItem("application", JSON.stringify(application));
return application
});
} else {
return JSON.parse(localStorage.application)
}
}

我在这里做错了什么?

最佳答案

您的方法确实 neither return the application如果 localStorage.application 是假的,它也不会返回一个对象。

你在你的函数中做一些异步的事情,所以你需要总是返回一个 promise :

ApplicationModule.get = function () {
if (!localStorage.application) {
return Rectangular.all('session').one('user').get().then(function (response) {
// ^^^^^^ returning the promise
var application = {
"id": response.current_application_id,
"user_id": response.id,
"visa_type": response.current_type
};
localStorage.setItem("application", JSON.stringify(application));
return application;
// ^^^^^^ returning the value that the promise will resolve with
});
} else {
return $q.resolve(JSON.parse(localStorage.application));
// ^^^^^^^^^^ creating a promise here as well for consistent interface
}
}

关于javascript - Angular 应用程序中 Javascript 中的方法链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37820586/

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