Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs$http post承诺_Javascript_Angularjs_Post_Angularjs Http - Fatal编程技术网

Javascript Angularjs$http post承诺

Javascript Angularjs$http post承诺,javascript,angularjs,post,angularjs-http,Javascript,Angularjs,Post,Angularjs Http,我尝试使用$http.post的承诺响应,以整数形式返回记录的新ID,并将其用于下一个$http.post。我曾经帮过忙,但还是没用 var streckenId; var trackpunktId; var getStreckeID = function () { $http.post(dbStrecke, {"ort": location, "distanz": km}).then(function (response) { streckenId = response.data

我尝试使用$http.post的承诺响应,以整数形式返回记录的新ID,并将其用于下一个$http.post。我曾经帮过忙,但还是没用

var streckenId;
var trackpunktId;

var getStreckeID = function () {
  $http.post(dbStrecke, {"ort": location, "distanz": km}).then(function (response) {
    streckenId = response.data;
    console.log("ID (then): " + streckenId); // return ID
  });
  return streckenId;
};

streckenId = getStreckeID();
console.log("StreckeID:" + streckenId); //return undefined

最后一个console.log仍然说“streckenId”未定义。

修改您的代码

 var streckenId;
 var trackpunktId;

 var getStreckeID = function () {
    return $http.post(dbStrecke, {"ort": location, "distanz": km});
 };

 getStreckeID().then(function(response) {
    streckenId = response.data;
    console.log("ID (then): " + streckenId); // return ID
 });
只有在解决promise时,服务器上的数据才可用。
因此,将在解决承诺后执行转让。否则,
streckenId
将是
未定义的

您没有很好地阅读问题的答案,您仍然试图使用尚未设置的内容。您在开玩笑吗?我试图用上面的线程来解决问题,但它不起作用,所以我还是没有得到帮助?伟大的社区!!它确实有效,你只是执行错误。是的,那么告诉我我做错了什么?我已经阅读了答案并尝试了不同的方法,但没有任何效果,所以我在这里要求提前…谢谢你的回答,但仍然不起作用。console.log outside-from-then给出了一个未加定义的响应。您可以检查响应的内容吗?是的,.then(){}中的响应返回了正确的ID。问题是,我需要.then()块之外的响应