Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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 如何等到jQuery函数完成后再继续?_Javascript_Jquery_Node.js - Fatal编程技术网

Javascript 如何等到jQuery函数完成后再继续?

Javascript 如何等到jQuery函数完成后再继续?,javascript,jquery,node.js,Javascript,Jquery,Node.js,这就是所谓的tempfunc2一旦从$.getJSON得到响应,您就需要解析承诺 大概是这样的: await tempfunc().then(tempfunc2); 确保将gameHashes定义为数组 从对问题的编辑来看,您似乎正在进行多个&.getJSON调用。在这种情况下,您需要执行以下操作: await tempfunc().then(tempfunc2); 函数tempfunc2(结果){ 返回新承诺(异步解析=>{ const promises=result.map(值=>{

这就是所谓的
tempfunc2

一旦从
$.getJSON
得到响应,您就需要解析承诺

大概是这样的:

await tempfunc().then(tempfunc2);
确保将
gameHashes
定义为数组

从对问题的编辑来看,您似乎正在进行多个
&.getJSON
调用。在这种情况下,您需要执行以下操作:

await tempfunc().then(tempfunc2);
函数tempfunc2(结果){
返回新承诺(异步解析=>{
const promises=result.map(值=>{
返回新承诺(解决=>{
$.getJSON(url、函数(数据){
解析(数据)
});
});
})
让结果=等待承诺。全部(承诺)
results=results.filter(v=>v.mapping&&v.mapping[“0”]).map(v=>v.mapping[“0”])。游戏)
决心(结果);
});

}
一旦从
$.getJSON
获得响应,您需要解决承诺问题

大概是这样的:

await tempfunc().then(tempfunc2);
确保将
gameHashes
定义为数组

从对问题的编辑来看,您似乎正在进行多个
&.getJSON
调用。在这种情况下,您需要执行以下操作:

await tempfunc().then(tempfunc2);
函数tempfunc2(结果){
返回新承诺(异步解析=>{
const promises=result.map(值=>{
返回新承诺(解决=>{
$.getJSON(url、函数(数据){
解析(数据)
});
});
})
让结果=等待承诺。全部(承诺)
results=results.filter(v=>v.mapping&&v.mapping[“0”]).map(v=>v.mapping[“0”])。游戏)
决心(结果);
});

}
新承诺
在承诺已经存在的情况下称为承诺构造反模式

$.getJSON
返回jQuery deferred对象,它可以生成一个可以等待的承诺:

async function tempfunc2(result) {
  return new Promise((resolve, reject) => {
    $.getJSON(url, function(data) {
      if (data.mappings["0"]) {
        gameHashes.push(data.mappings["0"].game);
      }
      resolve(gameHashes)
    });
  })
}

新承诺
在承诺已经存在的情况下称为承诺构造反模式

$.getJSON
返回jQuery deferred对象,它可以生成一个可以等待的承诺:

async function tempfunc2(result) {
  return new Promise((resolve, reject) => {
    $.getJSON(url, function(data) {
      if (data.mappings["0"]) {
        gameHashes.push(data.mappings["0"].game);
      }
      resolve(gameHashes)
    });
  })
}

我认为尝试使用生成器函数
async*
而不是只返回未来的异步函数,直到第一个函数完全结束,生成器函数才获得下一个函数*可能的复制品可能也会改善缩进效果。有了可读的代码,解决这样的问题就容易多了。以后请在代码块中使用正确的格式。您可以通过单击编辑器中的
按钮,将HTML、CSS或JavaScript代码片段粘贴到堆栈代码片段模式中,然后使用“Tidy”按钮自动为您的代码设置格式。
gamehash
不在范围内。如果它是在封闭范围内定义的,这看起来不是很好。我想尝试使用生成器函数
async*
而不是只返回未来的异步函数,直到第一个函数完全结束,生成器函数才获得下一个函数*可能的复制品可能也会改善缩进效果。有了可读的代码,解决这样的问题就容易多了。以后请在代码块中使用正确的格式。您可以通过单击编辑器中的
按钮,将HTML、CSS或JavaScript代码片段粘贴到堆栈代码片段模式中,然后使用“Tidy”按钮自动为您的代码设置格式。
gamehash
不在范围内。如果它是在封闭范围内定义的,这看起来不是很好。这是可行的,但我需要在检索和存储所有数据后解决它。请参阅更新后的帖子。现在的情况是,在收集和存储所有数据之前,它就已经被解决了。我不得不对它进行一些修改,以实现我的功能并得到我所需要的,但它为我指明了正确的方向。谢谢我认为异步解析是我所需要的。这是可行的,但我需要在检索和存储所有数据之后解析它。请参阅更新后的帖子。现在的情况是,在收集和存储所有数据之前,它就已经被解决了。我不得不对它进行一些修改,以实现我的功能并得到我所需要的,但它为我指明了正确的方向。谢谢我认为异步解析是我所需要的。