Kes*_*ker 1 javascript promise
我正在尝试将 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;
}
Run Code Online (Sandbox Code Playgroud)
当承诺数组返回给ProcessExamples方法时,所有承诺都已解决。这不是我想要的,我该怎么办?
我试着更换拉姆达( resolve, reject ) => {}与function( resolve, reject ) {}-那什么也没做。
我已经确定它甚至在被推送到Promises数组之前就解决了,所以我假设它在被分配给lPromise
但是当将 Promise 分配给变量时,它会立即执行。
是的,这就是 Promise 构造函数所做的(它立即执行它的回调函数并传递它解析和拒绝函数,回调在完成时可以调用)。
如果你想要一些可以稍后执行的东西,那么使用函数而不是承诺。(该函数可以返回一个承诺)。