回调函数里的变量作为外层函数返回值的问题

发布于 2022-09-11 17:57:40 字数 429 浏览 21 评论 0

学艺不精焦头烂额
代码是多层回调的,例子代码如下

var arr=[];
let A = ()=>{
    //逻辑处理
     B(function(){
            
            C(function(){
                
                 let a = 10;
                 arr.push(a);
            
            })
            
    
    })
    return arr

}

期望得到函数c里的arr作为函数A的返回值,但是因为异步的原因,会先执行return语句,返回undefined

 let data = A();
 

请各位大大不吝赐教

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

冷心人i 2022-09-18 17:57:40

一、用await把异步变成同步形式
二、手动用promise封装,把返回后的逻辑写到then里
三、使用回调,把返回后的逻辑通过回调传到内层函数里

小鸟爱天空丶 2022-09-18 17:57:40

了解下Promise

 let A =new Promise((resolve,reject) => {
    function B(function(){
       resolve();
    })
}).then(()=>{
function C(function(){
                
    let a = 10;
    arr.push(a);
            
  })
})
旧竹 2022-09-18 17:57:40
var arr=[];
let A = ()=>{
    //逻辑处理
     return B(function(){
            
            return C(function(){
                
                 let a = 10;
                 arr.push(a);
                 return arr
            })
            
    
    })

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文