JS Promises:分配给变量时,Promises 正在执行/解析

我正在尝试将 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


慕勒3428872
浏览 125回答 1
1回答

守着星空守着你

但是当将 Promise 分配给变量时,它会立即执行。是的,这就是 Promise 构造函数所做的(它立即执行它的回调函数并传递它解析和拒绝函数,回调可以在完成时调用)。如果你想要一些你可以稍后执行的东西,那么使用一个函数而不是一个 Promise。(该函数可以返回一个承诺)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript