我想知道AngularJS中这两个服务有什么区别。两者都有承诺,基本上都是有效的。
具有自变量的方法:
module.exports = function () {
var self = this,
data = false;
self.someFunction = function () {
methodFromAnotherService().then(function (reponse) {
data = response;
});
};
};
带绑定的方法:
module.exports = function () {
var data = false;
this.someFunction = function () {
methodFromAnotherService().then(function (reponse) {
data = response;
}.bind(this));
};
};
如果没有绑定,那么第二个不起作用。我知道这与范围有关。请提供有关主要差异的任何有用信息。
答案 0 :(得分:1)
Promise对象用于延迟和异步计算。承诺代表尚未完成的操作,但预计在未来。
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise
bind()方法创建一个新函数,在调用时,将其this关键字设置为提供的值,并在调用新函数时提供任何前面提供的给定参数序列。
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Function/bind