Parse platform Javascript-在函数外部使用对象

Parse platform Javascript-在函数外部使用对象,parse-platform,Parse Platform,这里有一个问题。 我在一个函数中有一个变量,我想在另一个函数的外部使用它。 出于某种原因,我就是做不到,可能是我遗漏了一些小问题 function getIDs() { Parse.initialize("mycode", "mycode"); var recipeObject = Parse.Object.extend("mycode"); var query = new Parse.Query(recipeObject); query.notEqualTo("obje

这里有一个问题。 我在一个函数中有一个变量,我想在另一个函数的外部使用它。 出于某种原因,我就是做不到,可能是我遗漏了一些小问题

function getIDs() {
Parse.initialize("mycode", "mycode");
    var recipeObject = Parse.Object.extend("mycode");
    var query = new Parse.Query(recipeObject);
    query.notEqualTo("objectId", "mycode");
    query.find({
    success: function(results) {
      for (var i = 0; i < results.length; i++) { 
      var object = results[i];
      var objectIdent = object.id;
      var objectText = object.get('recipe_text');
      var getObject = query.equalTo("objectId", objectIdent);
      console.log(object.id);
   }
  },
  error: function(object, error) {
    alert("fail");
  }
    });


    }
 //Here I am trying to acces the object.id object and just can't get it..
      console.log(object.id);
函数getIDs(){ 初始化(“mycode”、“mycode”); var recipeObject=Parse.Object.extend(“mycode”); var query=newparse.query(recipeObject); query.notEqualTo(“objectId”、“mycode”); 查询.查找({ 成功:功能(结果){ 对于(var i=0;i
提前谢谢

这是范围的问题,您可以这样做(假设最后一行:
console.log(object.id);
位于范围的顶层):

Parse.initialize(“mycode”、“mycode”);
var recipeObject=Parse.Object.extend(“mycode”);
var query=newparse.query(recipeObject);
query.notEqualTo(“objectId”、“mycode”);
查询.查找({
成功:功能(结果){
对于(var i=0;i
不是100%确定,但您可以尝试不使用var关键字


var关键字使其作用域特定于{}。

这篇文章告诉我,我需要在我的函数中创建另一个函数才能访问变量。 所以我就这样加了一句:

function getIDs() {
Parse.initialize("mycode", "mycode");
var recipeObject = Parse.Object.extend("mycode");
var query = new Parse.Query(recipeObject);
query.notEqualTo("objectId", "mycode");
query.find({
success: function(results) {
  for (var i = 0; i < results.length; i++) { 
  var object = results[i];
  var objectIdent = object.id;
  var objectText = object.get('recipe_text');
  var getObject = query.equalTo("objectId", objectIdent);
  function internalShit(){
    console.log(objectIdent);
  }
  internalShit();
}
},
}
},
error: function(object, error) {
alert("fail");
}
});
}
函数getIDs(){ 初始化(“mycode”、“mycode”); var recipeObject=Parse.Object.extend(“mycode”); var query=newparse.query(recipeObject); query.notEqualTo(“objectId”、“mycode”); 查询.查找({ 成功:功能(结果){ 对于(var i=0;iIMO,初始代码有两个问题。一个是上面指出的范围问题。另一个是“异步”问题。请记住,当您调用Parse时,它是一个异步调用。这意味着它将发送一个请求并继续执行您的其余代码。无法保证响应何时返回以及您的“成功:”代码何时执行

在下面的示例中,query.find将发送一个请求,并继续执行console.log作为下一行。在收到响应之前,它不会执行“success:…”代码,响应很可能在console.log之后。因此,consol.log很可能会输出“not”

保证响应后代码执行的唯一方法是将其放入成功或错误块


祝你好运!

很明显,这是可能的,因为当我试图访问函数外的变量时,它也在函数内。谢谢!不,不幸没有帮助。谢谢!非常感谢你的回答!我用另一种方式解决了这个问题,但我也会检查你的解决方案!
function getIDs() {
Parse.initialize("mycode", "mycode");
var recipeObject = Parse.Object.extend("mycode");
var query = new Parse.Query(recipeObject);
query.notEqualTo("objectId", "mycode");
query.find({
success: function(results) {
  for (var i = 0; i < results.length; i++) { 
  var object = results[i];
  var objectIdent = object.id;
  var objectText = object.get('recipe_text');
  var getObject = query.equalTo("objectId", objectIdent);
  function internalShit(){
    console.log(objectIdent);
  }
  internalShit();
}
},
}
},
error: function(object, error) {
alert("fail");
}
});
}
var done = "not";

... Parse Query Initialization...

query.find({
success: function(results) {
  done = "done!";
} ...error handling etc

console.log(done); //will most likely log "not"