【发布时间】:2017-05-23 23:56:49
【问题描述】:
我编写了一个请求,与代码中的其他请求类似,但它挂起,我不明白为什么。
这是控制器中的代码:
$scope.addScroll = function(){
InternDataProvider.addScroll(globalCtrl.unscrolled)
.then(function(reports) {
console.log("Changes saved");
globalCtrl.scrollmessage="Combinaison "+globalCtrl.unscrolled.media+"/"+globalCtrl.unscrolled.platoform+" ajoutée.";
globalCtrl.scrollmessageerr="";
}).catch(function(err) {
console.error('Unable to fetch forecast report: ' + err);
});
};
工厂部分的代码:
internDataProvider.addScroll = function(uscr)
{
var httpParams = {
unscrolled: uscr
};
return $http.post(addScroll, {
params : httpParams,
}).then(function(response){
console.log("Successful: response from submitting data to server was: " + response);
}).catch(function(err){
console.log(err.statusCode);
});
};
还有 node.js 部分的代码:
//Add a combination of media or platform to the scroll
function addScroll(res, queryParams)
{
var int1 = listMedias.indexOf(queryParams.unscrolled.media) +1;
var int2 = listPlatforms.indexOf(queryParams.unscrolled.platform);
connection.query("UPDATE safeplusdb.scroll SET isscrolled="+true+" WHERE idm="+int1+" AND vector_id="+int2+";", function(err, records) {
if(err) throw err;
console.log("UPDATE safeplusdb.scroll SET isscrolled="+true+" WHERE idm="+int1+" AND vector_id="+int2+";");
connection.query("SELECT * FROM safeplusdb.scroll;", function (err, records){
if(err) throw err;
for(i=0; i<records.length; i++)
{
var record= records[i];
indj=indk=0;
if(record.isscrolled==false)
{
if(record.idm==null && record.vector_id !=null)
{
listUnScroll[indj] = {media : null, platform : null};
listUnScroll[indj].media = null;
listUnScroll[indj].platform = listPlatforms[record.vector_id];
indj++;
}
else if(record.vector_id==null && record.idm!=null)
{
listUnScroll[indj] = {media : null, platform : null};
listUnScroll[indj].platform = null;
listUnScroll[indj].media = listMedias[record.idm-1];
indj++;
}
else
{
listUnScroll[indj] = {media : null, platform : null};
listUnScroll[indj].media = listMedias[record.idm-1];
listUnScroll[indj].platform = listPlatforms[record.vector_id];
indj++;
}
}
else if(record.isscrolled==true)
{
if(record.idm==null && record.vector_id !=null)
{
listScroll[indk] = {media : null, platform : null};
listScroll[indk].media = null;
listScroll[indk].platform = listPlatforms[record.vector_id];
indk++;
}
else if(record.vector_id==null && record.idm!=null)
{
listScroll[indk] = {media : null, platform : null};
listScroll[indk].platform = null;
listScroll[indk].media = listMedias[record.idm-1];
indk++;
}
else
{
listScroll[indk] = {media : null, platform : null};
listScroll[indk].media = listMedias[record.idm-1];
listScroll[indk].platform = listPlatforms[record.vector_id];
indk++;
}
}
}
});
});
}
我在 HTML 页面中获取数据,我使用控制器(使用 Angular.js)来操作它,并将它传输到我的 server.js 文件 (node.js)。
请求结果,当我在 Workbench 上对其进行测试时,它可以正常工作。但是使用此代码,我有一个未决的请求,如下所示:
当我停止 Web 应用程序时,可以进行请求执行的更改。
那么,如何解释当前的未决?如何解决?
【问题讨论】:
-
请求处于挂起状态,因为它正在等待来自永远不会到来的服务器的明确响应。在服务器端代码中,您必须通过调用
res.end(definiteResponseString)或通过调用连续的res.write(responseFragmentString)然后res.end(optionallyLastResponseFragment)来发送明确的响应
标签: javascript mysql angularjs node.js