我正在尝试将 a 分配new Promise()给一个变量,然后将该变量推送到一个数组,从而产生一个承诺数组。然后,我想稍后在单击按钮时执行这一系列承诺。但是在将 分配Promise给变量时,它会立即执行。ProcessExamples(){ swal({ title : 'Get Examples?', confirmButtonText: 'Yes', }).then( aRes => { if( aRes.value ){ let lAllPromises = ExampleClass.GetExamplePromises(); } });}static GetExamplePromises(){ let lPromises = []; Examples.forEach( aExample => { let lPromise = new Promise( ( resolve, reject ) => { resolve( true ); }); lPromises.push( lPromise ); }); return lPromises;}当 Promise 数组返回给ProcessExamples方法时,所有的 Promise 都已解决。这不是我想要的,我该怎么办?我试过用 - 替换 lambda ( resolve, reject ) => {},function( resolve, reject ) {}但什么也没做。我已经确定它在被推送到Promises数组之前就解决了,所以我假设它在被分配到lPromise
1 回答
守着星空守着你
TA贡献1799条经验 获得超8个赞
但是当将 Promise 分配给变量时,它会立即执行。
是的,这就是 Promise 构造函数所做的(它立即执行它的回调函数并传递它解析和拒绝函数,回调可以在完成时调用)。
如果你想要一些你可以稍后执行的东西,那么使用一个函数而不是一个 Promise。(该函数可以返回一个承诺)。
添加回答
举报
0/150
提交
取消
