有没有办法可以实现这一点,其中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);
}
}
答案 0 :(得分:0)
变量toysData会有promise对象。你可以订阅成功或失败状态。如果您想记录响应,您只需要使用日志功能订阅成功状态
toys(uuid).then(console.log);