是的。 Q(value)
返回一个承诺value
(如果value
是一个承诺,它也会解开值)。
getYear().then(function(results){
if(results.is1999) return party();
else return Q(undefined);
}).then(sleep)
或者,您可以通过不返回任何内容来获得完全相同的语义:
getYear().then(function(results){
if(results.is1999) return party();
}).then(sleep)
如果你想要的是一个永远无法解决的承诺,你最好的选择是
getYear().then(function(results){
if(results.is1999) return party();
else return Q.promise(function () {});
}).then(sleep)
你可以做的是重用相同的承诺:
var stop = Q.promise(function () {});
getYear().then(function(results){
if(results.is1999) return party();
else return stop
}).then(sleep)