像这样在构造函数中解析承诺是否有效
var promise1 = new Promise(function(resolve, reject) {
resolve('foo');
});
代替构造创建后的解析,如下所示
var promise1 = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('foo');
}, 300);
});
答案 0 :(得分:2)
是的,在构造函数中同步解决新的Promise是完全可以接受的。 IIRC,它甚至是A+ promise验证套件中的测试用例。
但是,如果解析不是 有条件的,则使用ES6 Promise静态方法“ resolve”可以更清楚地实现:
#include <iostream>
#include "B_pj1.h"
int main(){
int s1=doIt<1>(3,2); //:
int s2=doIt<2>(3,2);
std::cout << s1<<" "<<" "<<s2<<std::endl;
int asfasd=0;
}
注意如果抛出错误,两种方法会有所不同:
var promise1 = Promise.resolve( 'foo');
返回被拒绝的承诺。
new Promise( executor)
的参数求值抛出错误,则该异常会阻止对Promise.resolve
的调用。