我有以下代码
function onpagechange(page, limit)
{
var deferred = $q.defer();
loadUsers(deferred);
return deferred.promise;
}
通过eslint给出了以下错误:You should not create a new promise with this syntax. Use the $q(function(resolve, reject)
迁移到新的$ q语法的最佳方法是什么。如果我100%确定函数返回的是什么,我想我会更好地处理这个问题。
答案 0 :(得分:3)
根据文档,$q
constructor返回一个可以在传递给它的函数中解析的promise。
更新
function onpagechange(page, limit)
{
return $q(loadUsers)
}
function loadUsers(resolve, reject) {
return $http().then(resolve, reject);
}
答案 1 :(得分:-1)
在你的loadUsers函数中你必须:
defer.resolve(result);
或
defer.reject(reason);
例如:
function onpagechange(page, limit)
{
var deferred = $q.defer();
loadUsers(deferred);
return deferred.promise;
}
function loadUsers(defer)
{
$http.get('users.json').success(function(result) {
defer.resolve(result);
}).error(function(err){
defer.reject(err);
});
}