Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.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承诺链接未按预期工作_Javascript_Promise_Async Await - Fatal编程技术网

Javascript承诺链接未按预期工作

Javascript承诺链接未按预期工作,javascript,promise,async-await,Javascript,Promise,Async Await,我试图在承诺中回报一个承诺,但无法让它发挥作用 这是我的密码 异步函数main(){ 返回新承诺((解决、拒绝)=>{ p=新承诺((解决、拒绝)=>{ f2(异步()=>{ 解决(); }); }); 数组=[]; array.push(p); 所有(数组)。然后(解析(1)); }); } setTimeout(异步()=>{ log(wait main()); }, 0); 函数f2(回调){ 控制台日志(“h调用”); 设置超时(()=>{ 回调(); }, 4000); }正在立即调

我试图在承诺中回报一个承诺,但无法让它发挥作用 这是我的密码

异步函数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涵盖相同的问题,但与事件处理程序相关