感谢楼上各位的指导,问题解决,分享两个解决方案
第一个是
@
autoxbc 的办法,采用 return iterator(i + 1) 的方式。
async function test_async ( ) {
var test_array = [ "a" , "b" , "c" ] ;
return ( function iterator ( i ) {
if ( test_array [ i ] == "c" ) {
console.log ( "test_async ( ) 函数内部 " + i ) ;
return i ;
}
return iterator ( i + 1 ) ; // 迭代调用 函数自身, 执行下一个循环 ;
} ) ( 0 ) ;
}
async function Get_data ( ) {
console.log ( test_async ( ) ) ;
var temp_Variable = await test_async ( ) ;
console.log ( temp_Variable ) ;
}
Get_data ( ) ;
第二个是在 segmentfault 请教来的方案,借助一个中间变量实现:
async function test_async ( ) {
var test_array = ["a", "b", "c"] ;
var a = null ; // 中间变量
( function iterator ( i ) {
if ( test_array [ i ] == "c" ) {
a = i ;
} else {
iterator ( i + 1 ) ; // 迭代调用 函数自身, 执行下一个循环 ;
}
} ) ( 0 ) ;
console.log ( "test_async() 函数内部 :" + a ) ;
return a ;
}
async function Get_data() {
console.log ( test_async ( ) ) ;
var temp_Variable = await test_async ( ) ;
console.log ( temp_Variable ) ;
}
Get_data();