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
不在范围内。如果它是在封闭范围内定义的,这看起来不是很好。这是可行的,但我需要在检索和存储所有数据后解决它。请参阅更新后的帖子。现在的情况是,在收集和存储所有数据之前,它就已经被解决了。我不得不对它进行一些修改,以实现我的功能并得到我所需要的,但它为我指明了正确的方向。谢谢我认为异步解析是我所需要的。这是可行的,但我需要在检索和存储所有数据之后解析它。请参阅更新后的帖子。现在的情况是,在收集和存储所有数据之前,它就已经被解决了。我不得不对它进行一些修改,以实现我的功能并得到我所需要的,但它为我指明了正确的方向。谢谢我认为异步解析是我所需要的。