我想知道如何实现转换,例如:
fn(args, function (errors, results) {})
到
fn(args).then(function (results){})
只需调用类似
的内容即可makePromise(fn, args).then(function (results))
WinJS 。
背景:我有一个使用异步回调的预定义接口,但我想将它们用作承诺。
这可能吗?甚至可能直接由WinJS支持?
答案 0 :(得分:3)
不,我在official docs找不到这样的方法。但是,这应该这样做:
function makePromise(fn, args) {
return new WinJS.Promise(function init(completeDispatch, errorDispatch) {
fn(args, function handler(errors, results) {
if (errors)
errorDispatch(errors);
else
completeDispatch(results);
});
});
}