Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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 异步/等待:can';t直接访问函数的数组值_Javascript_Async Await - Fatal编程技术网

Javascript 异步/等待:can';t直接访问函数的数组值

Javascript 异步/等待:can';t直接访问函数的数组值,javascript,async-await,Javascript,Async Await,这项工作: var getArray=function(id){ 返回[1,2]; } console.log(getArray()[0]);//返回1您可以在另一个async函数中使用await关键字,通过-(await getArray())[0]获得所需的结果 如果使用的async函数不在另一个async函数中,则必须像调用然后的简单承诺函数一样使用 var getArray=async函数(id){ 返回[1,2]; } getArray().then(res=>console.lo

这项工作:

var getArray=function(id){
返回[1,2];
}

console.log(getArray()[0]);//返回1
您可以在另一个
async
函数中使用
await
关键字,通过-
(await getArray())[0]
获得所需的结果

如果使用的
async
函数不在另一个
async
函数中,则必须像调用
然后
的简单承诺函数一样使用

var getArray=async函数(id){
返回[1,2];
}

getArray().then(res=>console.log(res[0])).catch(err=>{/*…*/})
您可以在另一个
async
函数中使用
await
关键字,通过-
(await getArray())[0]
获得所需的结果

如果使用的
async
函数不在另一个
async
函数中,则必须像调用
然后
的简单承诺函数一样使用

var getArray=async函数(id){
返回[1,2];
}

getArray().then(res=>console.log(res[0])).catch(err=>{/*…*/})我找到了解决方案,非常简单。 用括号把等待部分括起来

var first = (await getArray())[0];

我找到了解决办法,非常简单。 用括号把等待部分括起来

var first = (await getArray())[0];


我想使用async/await,而不是。然后查看更新的答案。同时仔细阅读答案。我已经写下了您可以使用
wait
@SurenSrapyan的地方。如果您没有
.catch
设置,您应该添加关于未捕获错误的注释。@RyanZim谢谢。在本例中,这不是必需的,但对于我添加的整个图片,我想知道是否有一个更优雅的解决方案,行数更少,比如同步代码。我想使用async/await,而不是。然后查看更新的答案。同时仔细阅读答案。我已经写下了您可以使用
wait
@SurenSrapyan的地方。如果您没有
.catch
设置,您应该添加关于未捕获错误的注释。@RyanZim谢谢。在本例中,这不是必需的,但对于我添加的整个图片,我想知道是否有一种更优雅的解决方案,使用更少的行,比如使用同步代码。您不能在
异步函数
之外使用
wait
。无论在何处调用
getArray
,都要使其成为
async
。您不能在
async函数
之外使用
wait
。无论您在哪里调用
getArray
,都要将其设置为
async
,出于好奇,我检查了它,但我不明白它为什么会工作,也无法复制它-它仍然会向我抛出语法错误。“wait”必须始终使用异步函数包装。它在这里工作得很好:如果你用异步函数包装它,这些偏执是不必要的,但是…不,它们是必要的:这将抛出未定义的啊,对。这是因为在等待结果之前,您试图访问
0
元素。出于好奇,我检查了它,但我看不出它为什么会工作,也无法复制它-它仍然会向我抛出语法错误。“wait”必须始终使用异步函数包装。它在这里工作得很好:如果你用异步函数包装它,这些偏执是不必要的,但是…不,它们是必要的:这将抛出未定义的啊,对。这是因为在等待结果之前尝试访问
0
元素。