我可以将回调转换为承诺吗?

时间:2015-07-26 00:07:46

标签: javascript angularjs callback promise

我找到了这个例子:

回调:

getDetails('Bob', function (err, details) {
   console.log(details)
});

承诺:

getDetails('Bob').then(function (details) {
   console.log(details);
});

example callback to promise

但不适合我。

如何在javascript或angularjs中将回调转换为promises?

谢谢!

1 个答案:

答案 0 :(得分:2)

getDetails('Bob').then(function (details) {
   console.log(details);
});

仅当getDetails返回一个promise时才能执行此操作。要创建承诺,您需要$ q服务。

所以getDetails应该是这样的:

function getDetails(name){

    var defered = $q.defer();

    defered.resolve('BobDetails');

    return defered.promise;

}

您的回调将在承诺解决时被调用,而作为参数,在此示例中将获得'BobDetails'