我需要将回调传递给签名为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;
这有效(使用延迟来防止立即执行,然后将resolve
函数作为回调传递),但似乎有点令人费解。
有没有更清洁的方法?