LINUX.ORG.RU

История изменений

Исправление crutch_master, (текущая версия) :

Это же ппц чистой воды.

Да, ты не знаешь, как писать на js. Это ппц чистый воды, т.к. любая макака это умеет.
1. man Promise

import Sqlite = require('sqlite');

class User {
  constructor(public id: number, public name: string) { }
}

function newUser(row) {return new User(row.id, row.name);}
function getUser(database) {
    database.get('SELECT * FROM user WHERE name = ?', 'karl'])
        .then(newUser)
        .catch(err);}
function error(err) {console.log(err);}

var database = new Sqlite<User>('CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY, name TEXT NOT NULL)')
    .then(getUser)
    .catch(err);
//как-то так. Не проверял, но походу твой код не рабочий.
Да, асинхронный код выглядит как говно. Но он хоть на чём будет так выглядеть. Поэтому:
2. Async костыли
import Sqlite = require('sqlite');

class User {
  constructor(public id: number, public name: string) { }
}
var loadUser = async function() {
   try {
       let database = await (new Sqlite<User>('CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY, name TEXT NOT NULL)'));
       let row = await database.get('SELECT * FROM user WHERE name = ?', 'karl']);
       return new User(row.id, row.name)
   } catch (err) {
       console.log(err);
   }
   return false;
}

User u = loadUser();
...
Что уже больше похоже на правду, хоть и на костылях.

Исправление crutch_master, :

Это же ппц чистой воды.

Да, ты не знаешь, как писать на js. Это ппц чистый воды, т.к. любая макака это умеет.
1. man Promise

import Sqlite = require('sqlite');

class User {
  constructor(public id: number, public name: string) { }
}

function newUser(row) {return new User(row.id, row.name);}
function getUser(database) {
    database.get('SELECT * FROM user WHERE name = ?', 'karl'])
        .then(newUser)
        .catch(err);}
function error(err) {console.log(err);}

var database = new Sqlite<User>('CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY, name TEXT NOT NULL)')
    .then(getUser)
    .catch(err);
//как-то так. Не проверял, но походу твой код не рабочий.
Да, асинхронный код выглядит как говно. Но он хоть на чём будет так выглядеть. Поэтому:
2. Async костыли
import Sqlite = require('sqlite');

class User {
  constructor(public id: number, public name: string) { }
}

User u = loadUser();

async function loadUser() {
   try {
       let database = await (new Sqlite<User>('CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY, name TEXT NOT NULL)'));
       let row = await database.get('SELECT * FROM user WHERE name = ?', 'karl']);
       return new User(row.id, row.name)
   } catch (err) {
       console.log(err);
   }
   return false;
}
Что уже больше похоже на правду, хоть и на костылях.

Исправление crutch_master, :

Это же ппц чистой воды.

Да, ты не знаешь, как писать на js. Это ппц чистый воды, т.к. любая макака это умеет.
1. man Promise

import Sqlite = require('sqlite');

class User {
  constructor(public id: number, public name: string) { }
}

function newUser(row) {return new User(row.id, row.name);}
function getUser(database) {
    database.get('SELECT * FROM user WHERE name = ?', 'karl'])
        .then(newUser)
        .catch(err);}
function error(err) {console.log(err);}

var database = new Sqlite<User>('CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY, name TEXT NOT NULL)').then(getUser).catch(err);
//как-то так. Не проверял, но походу твой код не рабочий.
Да, асинхронный код выглядит как говно. Но он хоть на чём будет так выглядеть. Поэтому:
2. Async костыли
import Sqlite = require('sqlite');

class User {
  constructor(public id: number, public name: string) { }
}

User u = loadUser();

async function loadUser() {
   try {
       let database = await (new Sqlite<User>('CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY, name TEXT NOT NULL)'));
       let row = await database.get('SELECT * FROM user WHERE name = ?', 'karl']);
       return new User(row.id, row.name)
   } catch (err) {
       console.log(err);
   }
   return false;
}
Что уже больше похоже на правду, хоть и на костылях.

Исходная версия crutch_master, :

Это же ппц чистой воды.

Да, ты не знаешь, как писать на js. Да, это ппц чистый воды, т.к. любая макака это умеет.
1. man Promise

import Sqlite = require('sqlite');

class User {
  constructor(public id: number, public name: string) { }
}

function newUser(row) {return new User(row.id, row.name);}
function getUser(database) {
    database.get('SELECT * FROM user WHERE name = ?', 'karl'])
        .then(newUser)
        .catch(err);}
function error(err) {console.log(err);}

var database = new Sqlite<User>('CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY, name TEXT NOT NULL)').then(getUser).catch(err);
//как-то так. Не проверял, но походу твой код не рабочий.
Да, асинхронный код выглядит как говно. Но он хоть на чём будет так выглядеть. Поэтому:
2. Async костыли
import Sqlite = require('sqlite');

class User {
  constructor(public id: number, public name: string) { }
}

User u = loadUser();

async function loadUser() {
   try {
       let database = await (new Sqlite<User>('CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY, name TEXT NOT NULL)'));
       let row = await database.get('SELECT * FROM user WHERE name = ?', 'karl']);
       return new User(row.id, row.name)
   } catch (err) {
       console.log(err);
   }
   return false;
}
Что уже больше похоже на правду, хоть и на костылях.