javascript - 如何从接口(interface)或 promise 的内容中获取 "recieve" promise ?

标签 javascript angularjs sqlite typescript ionic-framework

我问这个问题是因为我不明白我搜索的问题所提供的解释,所以这个问题可能很常见。我使用另一个人的代码来尝试了解它是如何工作的,以便复制它。在可注入(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/

相关文章:

php - 从 PHP 调用 Python 但 SQLite3 不工作

django - TypeError:“ModelBase”对象不支持索引。

sqlite - 减去sqlite中的值

javascript - 您如何使用 esbuild 捆绑导出全局变量?

javascript - 托管 Angular 2 应用程序

javascript - jQuery 和 JSON 的问题

javascript - 在一项服务中引用多个 API 调用( Angular )

javascript - 使用 Google 地方信息自动填充功能强制街道地址?

javascript - 使用javascript更改div的高度

javascript - Firebase Firestore : get document ID after adding data offline