【发布时间】:2016-02-26 07:13:28
【问题描述】:
我需要将回调传递给签名为function('ui', {foo: bar, callback: callbackfn}) 的函数。我要传递的函数是一个When.js 承诺。
我想出的最好的:
var d = when.defer();
var p = when(d);
var q = p.then(function() {
return loadItem(newCatalogItem, name, fileOrUrl);
});
ConfirmationMessage.open('ui', { callback: d.resolve });
return q;
这可行(使用 deferred 来防止立即执行,然后将 resolve 函数作为回调传递),但似乎有点复杂。
有没有更清洁的方法?
【问题讨论】:
-
“函数是一个承诺”没有多大意义。你的意思是你有一个功能的承诺?
-
ConfirmationMessage.open是否使用带有错误参数的节点回调约定?还是您真的想在所有情况下都满足? -
它要么调用不带参数的回调(成功),要么不调用它。