【发布时间】:2015-03-18 00:22:46
【问题描述】:
我仍在学习 Promises,但我遇到了问题。也许你能帮帮我。
我有一个任务在运行实际的东西之前做一些检查。其中一些检查是同步的,另一些是异步的。
所以我想要这样的东西:
q.all([
jenkins.checkConfig,
gitlab.checkConfig,
sonar.checkConfig
])
.then(
function() {
doSomethingReallyCoolHere();
}
);
但是如果 sonar.checkConfig 不是一个承诺呢?我怎样才能给它一个承诺行为?
目前我正在这样做
var checkConfig = function() {
var qChecked = q.defer();
var isOK = awesomeSyncTestHere();
if (isOK) {
qChecked.resolve();
}
else {
qChecked.reject();
}
return qChecked.promise;
}
但它看起来很愚蠢。
我想这不是一个好方法,对吧?
非常感谢
【问题讨论】:
标签: javascript promise q