Javascript承诺链接未按预期工作
我试图在承诺中回报一个承诺,但无法让它发挥作用 这是我的密码 异步函数main(){ 返回新承诺((解决、拒绝)=>{ p=新承诺((解决、拒绝)=>{ f2(异步()=>{ 解决(); }); }); 数组=[]; array.push(p); 所有(数组)。然后(解析(1)); }); } setTimeout(异步()=>{ log(wait main()); }, 0); 函数f2(回调){ 控制台日志(“h调用”); 设置超时(()=>{ 回调(); }, 4000);Javascript承诺链接未按预期工作,javascript,promise,async-await,Javascript,Promise,Async Await,我试图在承诺中回报一个承诺,但无法让它发挥作用 这是我的密码 异步函数main(){ 返回新承诺((解决、拒绝)=>{ p=新承诺((解决、拒绝)=>{ f2(异步()=>{ 解决(); }); }); 数组=[]; array.push(p); 所有(数组)。然后(解析(1)); }); } setTimeout(异步()=>{ log(wait main()); }, 0); 函数f2(回调){ 控制台日志(“h调用”); 设置超时(()=>{ 回调(); }, 4000); }正在立即调
}正在立即调用解析函数,请尝试以下操作:
Promise.all(array).then(() => {
resolve(1);
});
编辑:我想补充一点,传递给承诺的then()回调的是一个语句,使用resolve(1)是执行该代码的调用,但是通过将该函数调用包装在匿名函数声明中,整个函数声明将被传递,然后在需要时被调用。
.then(resolve(1))代码>这是否回答了您的问题?Duplicate涵盖相同的问题,但与事件处理程序相关