可链接的承诺方法

时间:2019-02-24 08:30:34

标签: javascript

如何使以下可链接方法起作用?

promise方法应该将从get返回的数据包装到promise中。

// I need to do both:

// return object directly
return client.get(args);

// return promise
return client.get(args).promise();

为什么?有一个使用此签名的库,我需要对其进行模拟以进行测试。


编辑:已应用答案

client.get = function(args) {
  let obj = {foo: 'bar'}; // get data from somewhere
  obj.promise = function() {
      return new Promise((resolve, reject) => {
        console.log(this); // {foo: 'bar'}
        resolve(this);
        // TODO: reject logic
      });
  };
  return obj;
};

1 个答案:

答案 0 :(得分:2)

您似乎正在寻找

client.get = function(args) {
  let obj = {foo: 'bar'}; // get data from somewhere
  obj.promse = function() {
    return Promise.resolve(this);
  };
  return obj;
};
相关问题