1

私はCloudkit JSでAngular 2の作業をしようとしていますが、現在は単純なTodoです。Angular 2とCloudkit JS - 応答の約束を解決する

todo.request.js

var todorequest = { 
    get: function(){ 
     var container = CloudKit.getDefaultContainer(); 
     var publicDB = container.publicCloudDatabase; 

     var query = { 
      recordType: 'todo' 
     }; 

     return publicDB.performQuery(query).then(function (response) { 
      if(response.hasErrors) { 
       throw response.errors[0]; 
      } else { 
       let vals = []; 
       response.records.forEach(function(record){ 
        vals.push({title: record.fields['title'].value, text: record.fields['text'].value, date: record.fields['date'].value}) 
       }) 
       console.log(vals) 
       return vals; 
      } 
     }) 
    } 
} 

これは、これまでのところ、すべて、私が望んで良いですArray [ Object, Object ]を返します。以下があります

todo.service.tsは:

import { Injectable } from '@angular/core'; 
import { Todo } from './todo'; 

declare var todorequest:any; 

@Injectable() 
export class TodoService { 

    constructor() {} 

    getTodos() { 
     return new Promise<Todo[]>(resolve => 
      todorequest.get() as Todo[] 
      ); 
    } 
} 

私はは約束です()todorequest.get、などObject { Symbol(record)_1.k31kpejw2af: Object }から得るものと仮定します。どのように私はそれをTodo []に変換するのですか?私はデータを使用することができますか?正直言って、私は何が間違っているのか分かりません。

答えて

2

それを実感してください!私は行方不明だったサービスで

getTodos() { 
     return new Promise<Todo[]>(resolve => 
      resolve(todorequest.get()) 
      ); 
    } 
関連する問題