我正在研究离子2项目。我可以返回设备/手机中的所有联系人。但我使用的承诺代码由于一次只有一个请求而性能非常慢。现在,我希望将承诺代码更改为可观察的代码。请帮我解决这个问题。
Contacts.find()
window
是我使用承诺的方法。此方法非常缓慢地返回联系人。
答案 0 :(得分:3)
您可以使用Observable.fromPromise
将您的承诺包装在可观察的内容中。
可以做这样的事情来将你的承诺包装在可观察的中。
findContact(searchKey){
if(searchKey.target.value == "" || searchKey.target.value == undefined || searchKey.target.value == null){
this.contactSelected = false;
} else{
this.contactSelected = true;
}
let options = {
multiple: true,
hasPhoneNumber: true,
filter: searchKey.target.value
}
let cantactFields = ['displayName', 'phoneNumbers'];
var promise =Contacts.find(cantactFields, options).then(res => {
this.contactResults = res;
}, (er) => {
console.log(er);
})
return PromiseObservable.create(promise); // Observable.fromPromise(promise)
}
希望这个HElps