向promise添加多个属性

时间:2017-06-21 10:51:45

标签: javascript html angular

我在我的网络应用程序中有一个功能,我可以在数据中添加数据。但到目前为止,我只能通过我的方法中的参数添加一个属性 代码在按钮单击时执行,该按钮单击调用add函数。 然后调用模板服务函数create(name, name2)

createsharecase.component.ts

// Function to add a case
add(name: string, name2: string): void {
    name = name.trim();
    name2 = name2.trim();
    if (!name) { return; }
    this.templateService.create(name, name2).then(cases =>
    { this.cases.push(cases); })
    console.log("Name1: " + name + " Name 2: " + name2)}


// Create a template
create(name: string, name2: string): Promise<ICase> {
console.log("Template service method: " + name2);
return this._http
  .post(this._caseUrl, JSON.stringify
  ({ name: name, name2: name2 }), { headers: this.headers })
  .toPromise()
  .then(res => res.json().data as ICase)
  .catch(this.handleError)};

这是我的代码的输出:

Browser Image of output

1 个答案:

答案 0 :(得分:-1)

您可以使用对象或数组解析承诺。我相信没有多方面的承诺。

使用对象解析:

new Promise ((resolve, reject) => {
  // ... something fancy
  resolve({
    data: {
      // your args goes there
    }
    err: {
    }
  });
  // ... if error
  reject({
    data: {
    }
    err: {
      // errors
    }
  })
});

使用数组解析非常接近于对象解析:

new Promise ((resolve, reject) => {
  // ... something fancy
  resolve({
    data: [
    // your cases go there
    ]
    err: {
    }
  });
  // ... if error
  reject({
    data: {
    }
    err: {
      // errors
    }
  })
});

非常方便Destructuring assignment

// While the object is passed to then:
const { data: { value1, value2 } } = resolveValue;
const { value1, value2 } = resolveValue.data;

// While the array is passed:
const [ case1, case2 ] = resolveValue.data;

Promise documentation