【问题标题】:Can I convert callback to promise? [duplicate]我可以将回调转换为承诺吗? [复制]
【发布时间】:2015-10-16 09:51:42
【问题描述】:

我找到了这个例子:

回调:

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

承诺:

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

example callback to promise

但不适用于我。

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

谢谢!

【问题讨论】:

  • 在给出链接之前,请多描述一下。
  • 这听起来像是 X-Y 问题。应该显示函数 getDetails 首先做什么,并在更高的层次上解释你想要做什么。例如,如果getDetails 返回一个$resource,那么您需要使用记录在案的$resource api 并实际提供2 个回调

标签: javascript angularjs callback promise


【解决方案1】:
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;

}

当 Promise 被解决时,你的回调将被调用,并且在这个例子中它会作为参数得到 'BobDetails'

【讨论】:

    猜你喜欢
    • 2020-06-02
    • 2018-05-04
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    • 1970-01-01
    • 2022-12-19
    相关资源
    最近更新 更多