Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.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 如何从解析查询返回对象?_Javascript_Parse Platform - Fatal编程技术网

Javascript 如何从解析查询返回对象?

Javascript 如何从解析查询返回对象?,javascript,parse-platform,Javascript,Parse Platform,我就是这样做的: const Document = Parse.Object.extend('Document') const query = new Parse.Query(Document) let result = {} query.get(id, { success: function (object) { result = object.toJSON() console.log(result) }, error: func

我就是这样做的:

  const Document = Parse.Object.extend('Document')
  const query = new Parse.Query(Document)
  let result = {}
  query.get(id, {
    success: function (object) {
      result = object.toJSON()
      console.log(result)
    },
    error: function (object, error) {
      alert(`Error: ${error.code} ${error.message}`)
    }
  })
  console.log(result)
  return result
第一个
console.log(结果)
输出对象:

对象{content:“trstrtrts”,createdAt:“2016-01-17T11:20:30.694Z”, 标题:“文件2”,更新日期:“2016-01-17T11:20:30.694Z”,字数: “3000”…}

但是第二个没有返回任何内容。从解析查询返回对象的正确方法是什么

编辑:

store.first = (id) => {
  var query = new Parse.Query(Document)
  return query.get(id)
}

export default store
store.first(to.params.id).then((document) => {
   console.log(document.toJSON())
   return document.toJSON()
 })
根据Anon的回答,我尝试了以下方法:

store.js:

store.first = (id) => {
  var query = new Parse.Query(Document)
  return query.get(id)
}

export default store
store.first(to.params.id).then((document) => {
   console.log(document.toJSON())
   return document.toJSON()
 })
main.js:

store.first = (id) => {
  var query = new Parse.Query(Document)
  return query.get(id)
}

export default store
store.first(to.params.id).then((document) => {
   console.log(document.toJSON())
   return document.toJSON()
 })
但我得到了以下错误:

未捕获的TypeError:对象函数ParsePromise(){ _classCallCheck(this,ParsePromise);this.\u resolved=false;this.\u rejected=false;this.\u resolvedCallbacks=[]; 此._rejectedCallbacks=[];}没有方法“all”

第二

 console.log(result) 
在第一个之前发生。查询是一个异步操作。 正确的做法是使用承诺。比如你能做什么

function foo(id){
     var Document = Parse.Object.extend('Document');
     var query = new Parse.Query(Document);
      return query.get(id);
}
然后像这样使用函数foo:

foo(objectID).then(function(object){
  //do something with the object.

})

下面是一个在js中显示异步的示例

     console.log('a');
     setTimeOut(function(){console.log('b')},0);
     console.log('c');
印刷的顺序是 A. C b

(我们有超时0,但超时函数进入事件循环,并在函数完成后发生)

有关更多信息,请阅读
关于eventloop

谢谢你的回答。但是我得到了一个类型错误:
uncaughttypeerror:Object function ParsePromise(){u classCallCheck(this,ParsePromise);this.\u resolved=false;this.\u rejected=false;this.\u resolvedCallbacks=[];this.\u rejectedCallbacks=[];}没有方法“all”
它应该可以工作,可能是常量的问题。。尝试使用var检查相同的问题。可能是因为我必须设置
resolve
reject
回调?不。这不是resolve/reject。我要检查一下,我忘了foo(),然后我就忘了foo。你必须写foo(),然后()