8

これは、rs.rows.item(0); の値を返す必要がある私の約束関数です。

     public getCustomer()  : any
  {
        let  db =  window.sqlitePlugin.openDatabase({name: 'data.db', location: 'default'});
        return new Promise((resolve, reject) =>
        {
            db.transaction(function(tx)
            {
                tx.executeSql('SELECT * FROM customer ORDER BY customerId DESC LIMIT 1', [], function(tx, rs)
                {
                     return resolve(rs.rows.item(0));
                }, 
                function(tx, error) 
                {
                    console.log('SELECT error: ' + error.message);
                    reject(error);
                });
            });
        });    
  }

戻り値はこの画像のようなオブジェクトを取得しました画像結果

私はこの例のようになる必要があります

var customer = getCustomer();
customer.name;
customer.email;
4

4 に答える 4

3

これは であるPromiseため、次を使用する必要がありますthen

getCustomer()
    .then(customer => {
        customer.name;
        customer.email;
    });

TypeScript、またはasync/をサポートするバージョンの JavaScript を使用しているawait場合は、次のようにすることができます。

var customer = await getCustomer();
customer.name;
customer.email;

上記は、次のasyncように関数にする必要があります。

async displayCustomerDetails() {
    var customer = await getCustomer();
    customer.name;
    customer.email;
}
于 2018-10-10T10:40:51.323 に答える