我能把callback转换成promise吗?

Can I convert callback to promise?

本文关键字:promise 转换 callback      更新时间:2023-09-26

我发现了这个例子:

回调:

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

承诺:

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

promise的回调示例

但对我不起作用。

如何在javascript或angularjs中转换回调到承诺?

谢谢!

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

只有当getDetails返回一个promise时才有效。要创建一个承诺,你需要$q service。

所以getDetails应该看起来像:

function getDetails(name){
    var defered = $q.defer();
    defered.resolve('BobDetails');
    return defered.promise;
}

您的回调将在承诺被解析时被调用,并且在本例中作为参数它将获得'BobDetails'