Angular 2和Cloudkit JS-解析响应承诺
我正试图让Angular 2与Cloudkit JS一起工作,目前这是一个简单的任务 todo.request.js:Angular 2和Cloudkit JS-解析响应承诺,angular,es6-promise,angular2-services,cloudkit-web-services,Angular,Es6 Promise,Angular2 Services,Cloudkit Web Services,我正试图让Angular 2与Cloudkit JS一起工作,目前这是一个简单的任务 todo.request.js: var todorequest = { get: function(){ var container = CloudKit.getDefaultContainer(); var publicDB = container.publicCloudDatabase; var query = { reco
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[]
);
}
}
从'@angular/core'导入{Injectable};
从“/Todo”导入{Todo};
声明var todorequest:任何;
@可注射()
将类导出到服务{
构造函数(){}
getTodos(){
返回新承诺(解决=>
todorequest.get()作为Todo[]
);
}
}
我假设我从todorequest.get()得到的是一个承诺,比如
Object{Symbol(record)\u 1.k31kpejw2af:Object}
。如何将其转换为dotodo[],以便能够使用数据?老实说,我不确定我做错了什么。我想出来了!我在服役时缺少了解决方法
getTodos() {
return new Promise<Todo[]>(resolve =>
resolve(todorequest.get())
);
}
getTodos(){
返回新承诺(解决=>
解析(todorequest.get())
);
}