因此,我有多个自定义指令在使用 Promise 获取数据的服务中的同一函数内调用 Promise。服务内的此函数被命中 4 次(因为有 4 个指令调用它)。这就是问题所在。我只想调用一次,而不是调用 4 次。我怎样才能做到这一点?
另外,很抱歉,我无法提供我的代码。这只是一个调用 promise 的服务,然后像这样返回
服务:
return {
GetData: function() {
return processData.then(function(response){
return response
});
processData
只是在文件中前面完成的缓存,我在其中使用 $http.get
获取数据。
指令:
serviceName.GetData().then(function(response){
//Do Stuff and what not
})
最佳答案
可以存储promise对象,并且可以使用then()多次访问它
var promise = null;
return {
GetData: function() {
if (!promise) {
promise = proccessData.then(function(response) {
return response
});
}
return promise;
}
访问此变量的第一个指令将设置 Promise 变量,然后所有其他指令将访问相同的 Promise
关于javascript - 如何让多个指令仅调用一次服务中的同一个 promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38002656/