我需要將回調傳遞給簽名爲function('ui', {foo: bar, callback: callbackfn})
的函數。我想傳遞的函數是一個When.js的承諾。如何從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
功能回調),但似乎有點令人費解。
有沒有更清潔的方法?
「*功能是一個承諾*」沒有多大意義。你的意思是你有一個功能的承諾? – Bergi
ConfirmationMessage.open是否使用帶有錯誤參數的節點回調約定?或者你真的想在每種情況下滿足? – Bergi
它或者調用沒有參數的回調(成功),或者它不調用回調。 –