gpt4 book ai didi

javascript - 在 promise AngularJS/ES6 解决后检索存储在服务中的数据

转载 作者:行者123 更新时间:2023-11-30 16:17:09 28 4
gpt4 key购买 nike

我有一个从后端获取数据的服务,该数据作为 promise 返回。一旦我兑现 promise ,我将在服务中维护数据,但我希望在数据可用时尽可能多地获取已保存的数据。

module.factory
var dataStash = {};

var service = {
getListData : getListData,
returnDataByListname: returnDataByListname
};
return service;

function getListData(listName){
//...get the data corresponding to this list
).then(setData);

function setData (data, listName){
//store the data from the resolved promise as an
//object attribute with name same as the list name
dataStash.listName = data;
}

}//end getListData

function returnDataByListname(listName){
//how best to do this??
return dataStash.listName;
}

一切正常,但由于我不会在 promise 解决后立即返回数据,而是将其保存在服务中,因此存在我多久可以调用 returnDataByListname 的问题。由于我不知道什么时候 promise 会被解决并且数据可用,我该如何设置 returnDataByListname 以便它在调用后立即返回数据?

最佳答案

如果您主要是缓存数据,那么 returnDataByListname 可以返回一个 promise :

function returnDataByListname(listName){
return promiseStash[listName] || promiseStash[listName] = getListData(listName);
}

然后调用者可以重复调用 returnDataByListname('foo').then(foo => console.log(foo));,但是 getListData('foo')只会被调用一次。

关于javascript - 在 promise AngularJS/ES6 解决后检索存储在服务中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35322164/

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