我正在寻找一种快速的方式来履行承诺而不需要创造新的承诺。
有没有一种静态的方式来做我在A点(下面)做的事情
new Promise(function(resolve){
resolve(data1, data2);
})
.then(function(data1, data2){
if(something){
// returns promise
}
else{
// POINT A
return new Promise(function(fulfill){
fulfill(data1, data2);
});
}
})
.then(function(data){
console.log(data);
});
理想情况下像return Promise.fulfill(data1, data2);
这样可以省去编写调用函数的函数。
答案 0 :(得分:3)
您正在寻找Promise.resolve(data)
:
Promise.resolve(value)
方法返回使用给定值解析的Promise对象。如果该值是一个可设置的(即具有then方法),则返回的promise将“跟随”那个可能的,采用其最终状态;否则返回的承诺将用值来实现。
你总是只能传递单个值btw(你的例子不起作用)。
答案 1 :(得分:0)
return Promise.resolve(x)
函数中不需要.then
。这是隐含的。只需return x
!