【问题标题】:deferred promise returning to variable angularjs [duplicate]延迟承诺返回到变量 angularjs [重复]
【发布时间】:2018-06-05 19:17:03
【问题描述】:

有没有一种方法可以实现这一点,其中 toys 是一个延迟的 API 请求,运行时返回 res 的值,并且是记录 toysData 时的最终结果。

承诺

const toys = (url) => {
  const deferred = $q.defer();
  const params = {
    id: url,
  };

  ToysModel.get(params, (data) => {
    deferred.resolve(data);
  }, (error) => {
    deferred.reject(error);
  });
  return deferred.promise;
};

请求

let toysData = toys(uuid)
    .then(res => res);

console.log(toysData);

api调用

export default class ToysModel {
  constructor($resource, ENV) {
    const url = `${ENV.apiEndpoint}/`;

    const actions = {
      oembed: {
        url: `${ENV.apiEndpoint}/toy/:id`,
        method: 'get',
        params: {
          id: '@id',
        },
        crossDomain: true,
      },
    };
    return $resource(url, {}, actions);
  }
}

【问题讨论】:

  • console.log 进入 .then

标签: javascript angularjs promise deferred


【解决方案1】:

那个变量 ToysData 会有 promise 对象。您可以订阅成功或失败状态。如果你想记录响应,你只需要使用日志功能订阅成功状态

toys(uuid).then(console.log);

【讨论】:

    猜你喜欢
    • 2015-03-08
    • 2013-09-11
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    • 2017-11-24
    相关资源
    最近更新 更多