javascript - 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
解决方案
但是当将 Promise 分配给变量时,它会立即执行。
是的,这就是 Promise 构造函数所做的(它立即执行它的回调函数并传递它解析和拒绝函数,回调可以在完成时调用)。
如果你想要一些你可以稍后执行的东西,那么使用一个函数而不是一个 Promise。(该函数可以返回一个承诺)。
推荐阅读
- json - Getting .apply is not a function
- java - 将 chromedriver.exe 提取到 java 文件,然后在 selenium 中导入包
- jdbc - 在 Micronaut 中使用 @Transactional 而不使用 Hibernate
- unit-testing - Jest unit-testing if super() is called
- firebase - 用于检查角色或公司的 Firestore 规则功能
- python - 更改代码后权限被拒绝
- wordpress - 自定义帖子类型的 Ajax 过滤器
- android - 尝试在 Android Studio 中构建 SMS 应用时出现“访问被拒绝”错误
- ios - iPhone X - UIPageControl 黑条
- git - GIT 分支——我们可以只靠一个主人生存吗?