AngularJS 使用 $q promise 递增数字的函数
AngularJS function that increments a number with $q promise
我知道这可能是一个容易回答的问题,但我就是无法理解。我需要一个将数字递增 1 和 returns 的函数。
这里是fiddle
失败的例子
var incrementingFn = function() {
return $q(function(resolve,reject) {
var n = 0;
$q.resolve(function() {
n += 1;
return n;
}());
}
}
incrementingFn().then(function(res) {
var num = res;
}
您在代码中做的事情有很多不正确的地方。
这是他们的名单。
- 使用太旧的angular参考,使用最新的。
- 您的控制器应该绑定到您创建的模块。
- 您在执行 resolve 时错过了关闭右括号
}
。
- 正如@charlietfl 所说,数字声明应该在函数之外。
代码
var myApp = angular.module('myApp', []);
//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});
myApp.controller('MyCtrl', MyCtrl)
function MyCtrl($scope, $q) {
$scope.name = 'Superhero';
var n = 0;
var incrementingFn = function() {
return $q(function(resolve, reject) {
resolve(function() {
n += 1;
return n;
}());
})
}
incrementingFn().then(function(res) {
$scope.num = res;
}
);
}
您的代码存在语法问题以及其他逻辑问题
尝试
var n = 0;
var incrementingFn = function() {
return $q(function(resolve, reject) {
n++;
resolve(n);
});
}
incrementingFn().then(function(res) {
$scope.num = res;
});
一个要点是,如果您打算再次递增数字,您不想每次都在函数内将其声明为 0
,否则它将始终 return 1
我知道这可能是一个容易回答的问题,但我就是无法理解。我需要一个将数字递增 1 和 returns 的函数。
这里是fiddle
失败的例子
var incrementingFn = function() {
return $q(function(resolve,reject) {
var n = 0;
$q.resolve(function() {
n += 1;
return n;
}());
}
}
incrementingFn().then(function(res) {
var num = res;
}
您在代码中做的事情有很多不正确的地方。
这是他们的名单。
- 使用太旧的angular参考,使用最新的。
- 您的控制器应该绑定到您创建的模块。
- 您在执行 resolve 时错过了关闭右括号
}
。 - 正如@charlietfl 所说,数字声明应该在函数之外。
代码
var myApp = angular.module('myApp', []);
//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});
myApp.controller('MyCtrl', MyCtrl)
function MyCtrl($scope, $q) {
$scope.name = 'Superhero';
var n = 0;
var incrementingFn = function() {
return $q(function(resolve, reject) {
resolve(function() {
n += 1;
return n;
}());
})
}
incrementingFn().then(function(res) {
$scope.num = res;
}
);
}
您的代码存在语法问题以及其他逻辑问题
尝试
var n = 0;
var incrementingFn = function() {
return $q(function(resolve, reject) {
n++;
resolve(n);
});
}
incrementingFn().then(function(res) {
$scope.num = res;
});
一个要点是,如果您打算再次递增数字,您不想每次都在函数内将其声明为 0
,否则它将始终 return 1