我问这个问题是因为我不明白我搜索的问题所提供的解释,所以这个问题可能很常见。我使用另一个人的代码来尝试了解它是如何工作的,以便复制它。在可注入(inject)的方法之一中,原作者返回一个 promise ,我试图从注入(inject)的方法中获取 promise 的“内部”。
我将发布代码: 这是作者的代码
getLists(){
return this.isReady()
.then(()=>{
return this.database.executeSql("SELECT * from list", [])
.then((data)=>{
let lists = [];
for(let i=0; i<data.rows.length; i++){
lists.push(data.rows.item(i));
console.log(i);
}
return lists;
})
})}
这是我或多或少在做的事情,但不起作用,因为类型不同(string[] 与 Promise 不同)
`
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { DatabaseService } from '../../app/database-service';
@Component({
selector: 'page-home',
templateUrl: 'home.html',
providers:[DatabaseService],
})
export class HomePage {
listas:string[];
constructor(public navCtrl: NavController, private service:DatabaseService ) {
}
getLists(){
this.listas=this.service.getLists();
}
getList(){
this.service.getList(0);
}
addList(){
this.service.addList("Shazam");
}
deleteList(){
this.service.deleteList(0);
}
}`
感谢您的耐心和理解。
最佳答案
当数据准备好时,只需设置listas
:
getLists(){
this.service.getLists().then(lists => this.listas = lists);
}
或者使用另一种语法:
async getLists(){
this.listas = await this.service.getLists();
}
关于javascript - 如何从接口(interface)或 promise 的内容中获取 "recieve" promise ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50235132/