gpt4 book ai didi

javascript - 被所有的 promise 迷惑

转载 作者:行者123 更新时间:2023-11-30 08:01:14 26 4
gpt4 key购买 nike

我有以下工厂。它还有一个返回允许时间数组的函数(根据调用返回的信息计算)。我想在模板中提供此信息,我该如何在 Controller 中使用?

.factory('Company', function($resource) {
var myCompany = $resource('http://127.0.0.1:3000/api/v1/companies').get();

return {
allowed_times: function(){
myCompany.$promise.then(function(data, status){
var list = new Array();
list[list.length] = moment().set('hour', data.settings.work_time_start).set('minute', 0).set('second', 0);
endTime = moment().set('hour', data.settings.work_time_end).set('minute', 0).set('second', 0);
var currentTime = moment().set('hour', data.settings.work_time_start).set('minute', 0).set('second', 0);
while (list[list.length - 1] < endTime)
{
list[list.length] = moment(list[list.length - 1]).add(data.settings.time_rounding, 'm');
};
return list;
})
}
}
})

我已经尝试过不同的方法,这是最新的但给出了错误消息(无法读取未定义的属性“then”)。

Company.allowed_times().then(function(data) {
$scope.allowed_times = data
})

最佳答案

如果您想将 then 方法链接到 Company.allowed_times() 调用的结果,allowed_times 必须返回一个 promise 对象。不对,它返回 undefined。修复很简单,您只需要返回 myCompany.$promise.then(function() {...}):

allowed_times: function () {
return myCompany.$promise.then(function (data, status) {
// ... unchanged
return list;
});
}

一件事:如果你使用 then 方法,记得从它返回,它将成为传递给下一个 then 调用的新 promise 。

关于javascript - 被所有的 promise 迷惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27695711/

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