使用静态函数返回新的承诺

时间:2016-03-26 05:33:31

标签: javascript es6-promise

我正在寻找一种快速的方式来履行承诺而不需要创造新的承诺。

有没有一种静态的方式来做我在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);这样可以省去编写调用函数的函数。

2 个答案:

答案 0 :(得分:3)

您正在寻找Promise.resolve(data)

  

Promise.resolve(value)方法返回使用给定值解析的Promise对象。如果该值是一个可设置的(即具有then方法),则返回的promise将“跟随”那个可能的,采用其最终状态;否则返回的承诺将用值来实现。

你总是只能传递单个值btw(你的例子不起作用)。

答案 1 :(得分:0)

return Promise.resolve(x)函数中不需要.then。这是隐含的。只需return x