亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求大佬指點哈!請問為什么 async 函數中的 await 不起作用?總是返回 undefined 。

求大佬指點哈!請問為什么 async 函數中的 await 不起作用?總是返回 undefined 。

慕少森 2019-08-05 23:43:43
代碼如下:asyncfunctiontest_async(){vartest_array=["a","b","c"];(functioniterator(i){if(test_array[i]=="c"){console.log(i);returni;}iterator(i+1);//迭代調用函數自身,執行下一個循環;})(0);}asyncfunctionGet_data(){console.log(test_async());vartemp_Variable=awaittest_async();console.log(temp_Variable);}Get_data();在win10平臺下的node.js,CMD中執行文件后,總是返回
查看完整描述

2 回答

?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

你這個寫的問題太多了;1:iterator沒有執行2:就算執行了你也沒有返回給外層函數,而是迭代中的某一個函數3:你這不是異步沒必要用await4:遞歸中沒有終止條件,程序會崩潰
asyncfunctiontest_async(){
vartest_array=["a","b","c"];
vara=null;
(functioniterator(i){
if(test_array[i]=="c"){
a="i";
}else{
iterator(i+1);
//迭代調用函數自身,執行下一個循環;
}
}
)(0);
returna
}asyncfunctionGet_data(){
vartemp_Variable=awaittest_async();
console.log(temp_Variable);
}
Get_data();
                            
查看完整回答
反對 回復 2019-08-05
?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

感謝樓上各位的指導,問題解決,分享兩個解決方案第一個是在v2ex請教來的辦法,采用returniterator(i+1)的方式。
asyncfunctiontest_async(){
vartest_array=["a","b","c"];
return(functioniterator(i){
if(test_array[i]=="c"){
console.log("test_async()函數內部"+i);
returni;
}
returniterator(i+1);//迭代調用函數自身,執行下一個循環;
})(0);
}
asyncfunctionGet_data(){
console.log(test_async());
vartemp_Variable=awaittest_async();
console.log(temp_Variable);
}
Get_data();
第二個是借助一個中間變量實現:@趙開開的辦法:
asyncfunctiontest_async(){
vartest_array=["a","b","c"];
vara=null;//中間變量
(functioniterator(i){
if(test_array[i]=="c"){
a=i;
}else{
iterator(i+1);//迭代調用函數自身,執行下一個循環;
}
})(0);
console.log("test_async()函數內部:"+a);
returna;
}
asyncfunctionGet_data(){
console.log(test_async());
vartemp_Variable=awaittest_async();
console.log(temp_Variable);
}
Get_data();
                            
查看完整回答
反對 回復 2019-08-05
  • 2 回答
  • 0 關注
  • 274 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號