gpt4 book ai didi

angularjs - 为什么我的对象在 promise 后会丢失引用?

转载 作者:行者123 更新时间:2023-12-02 01:14:25 25 4
gpt4 key购买 nike

我有一个函数,它接受一个名为 issue 的对象,然后调用一个 promise。在执行 promise 之前对对象引用所做的任何更改都将反射(reflect)在原始引用中。之后所做的任何更改都不是。为什么不能,我该如何解决?

下面这个例子说明了问题

angular.module('app').controller('IssueCtrl',['issues', function(issues){
var issue = {};
issue.id=1;
issues.add_comment('test', issue).then(function(issue){
console.log(issue.id);
}
// returns 'a'
}
]);


angular.module('app').factory('issues', function(){
o.add_comment = function (comment, issue) {
// Changes made before promise are reflected in original promise
issue.id='a'
return o.update(comment).then(function(new_comment){
// Changes made after promise are not reflected in original promise
issue.id = 'b'
return new_comment
}

o.update=function(){
// more code
}
return o;
});

最佳答案

当你打电话时

issues.add_comment(issue);

该函数以

结尾
return o.update(comment).then(...

它立即返回一个 promise ,而不是在 then() 执行之后。如果你想等待它,你必须在你原来的电话中这样做:

issues.add_comment(issue).then(....

关于angularjs - 为什么我的对象在 promise 后会丢失引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43356018/

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