2017-06-21 14 views
0

私は約束事にデータを追加できるWebアプリケーションの機能を持っています。しかし、これまでのところ私のメソッドのパラメータを使って1つのプロパティしか追加することができません。
コードは、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

あなたがオブジェクトまたは配列との約束を解決することができます。私は、多面的な約束はないと信じています。オブジェクトに解決

:配列と解決

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

関連する問題