/// /// /// import es6_promise = require('es6-promise'); export var Promise = es6_promise.Promise; export class PromiseExample { string: string = null; number: number = null; object = null; constructor(string: string, number: number) { this.string = string; this.number = number; } createPromise(number: number): Promise.Promise { return new Promise(this.promiseResolver.bind(this, number)); } promiseResolver(number: number, resolve: (result: TestClass) => void): void { return setTimeout((() => resolve(new TestClass(number))), 0); } printResult(object: TestClass) { return console.log(object.result); } } export class TestClass { result: number = null; constructor(number: number) { this.result = number * 2; } } export var example = new PromiseExample("15", 100); (example.createPromise(100)).then(example.printResult);