以下代码每次运行时都会出错。部分service.getTracks(req,function(tracks),在参数' req'表示未定义)时出错。但是,程序仍然有效,但它仍然有效但仍然出错。我很想知道如果有人能说清楚为什么会发生这种情况?我现在已经盲目地盯着他看了4个小时,取得了0个进步......并且对此感到非常感激!
如果出现任何模糊或其他问题,请询问有关问题的问题。
祝你好运, 维克多
app.factory('echonestService', [
'$http',
'$rootScope',
'$cookies',
'$location',
function($http, $rootScope, $cookies, $location) {
var service = {};
service.getTracks = function(req, callback) {
$http(req).then(
function(res) {
var tracks = [];
res.data.forEach(function(e) {
tracks.push(e.song_id);
});
callback(tracks);
console.log($rootScope.previews);
$location.path('/review');
}
);
};
service.createPlaylist = function(name, tracks) {
var url = 'http://127.0.0.1:8080/api/create-playlist';
var data = {
'user_id': $cookies.get('username'),
'name': name,
'tracks': tracks,
'access_token': $cookies.get('access_token'),
'refresh_token': $cookies.get('refresh_token')
};
$http.post(url, JSON.stringify(data)).then(
function(res) {
$rootScope.playlistLink = res.data;
console.log($rootScope.playlistLink);
$location.path('/result');
},
function(err) {
console.log("error: ", err);
}
);
service.getTracks(req, function(tracks) {
data.tracks = tracks;
$http.post(url, JSON.stringify(data)).then(
function(res) {
$rootScope.playlistLink = res.data;
$rootScope.playlistName = name;
console.log($rootScope.playlistLink);
},
function(err) {
console.log("error: ", err);
}
);
});
};
return service;
}]);
答案 0 :(得分:0)
您实际使用req
的唯一地方是:
$http(req).then(
function(res) {
(...etc...)
即使then()
未定义, req
也会在$ http之后运行,这就是为什么您的代码仍在运行,因此您不需要需要 req
在任何地方 - 但由于你在$http
中使用它之前没有定义它,你就会收到错误。