延迟承诺返回变量angularjs [重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

有没有办法我可以实现这一点,其中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);
  }
}
javascript angularjs promise deferred
1个回答
0
投票

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

toys(uuid).then(console.log);
© www.soinside.com 2019 - 2024. All rights reserved.