promises promesas example typescript es6-promise

promesas - promise typescript



cómo usar es6-promises con mecanografiado? (5)

Leí esta pregunta, pero tuve problemas para conseguir promesas de trabajar con texto mecanografiado. Espero poder hacer una guía clara. Esto es para un proyecto de servidor / nodo. De hecho, estoy usando los últimos Ioj, pero apuntando a ES5 como salida.

$ tsd query es6-promise --action install --save $ npm install --save es6-promise // typescript code: /// <reference path="../../typings/es6-promise/es6-promise.d.ts"/> var Promise = require("es6-promise").Promise; require(''es6-promise'').polyfill(); function test():Promise { var p:Promise = new Promise(); return p; }

esto está dando el error:

Cannot find name ''Promise''.

// alternativamente:

var p = new Promise<string>((resolve, reject) => { resolve(''a string''); }); //error=> Untyped function calls may not accept type arguments.

¿Cuál es la forma recomendada de devolver una Promesa desde su propio código del lado del servidor del nodo?

referencias:


Agregue lo siguiente a package.json :

"devDependencies": { "@types/es6-promise": "^0.0.32" }, "dependencies": { "es6-promise": "~4.1.0" }



Lo siguiente estaba en v2.1.1 + con el objetivo establecido en es5

Pude usar Promises con async/await es6-promise instalando es6-promise y luego agregando esto al principio del archivo:

global.Promise = require(''es6-promise'').Promise;

Y esto para tsconfig.json

"lib": [ "es2015.promise", "es5" ],

El uso del formulario de import { Promise } no funcionó para mí ya que otras bibliotecas fallaban (por ejemplo, axios)


Necesitaba rellenar esto para un marco diferente (específicamente, axios); No necesitaba crear mis propias promesas, por lo que ninguna de estas soluciones funcionó para mí. Afortunadamente, la respuesta fue simple, si bien escondida:

import { polyfill } from ''es6-promise'' polyfill();


main.ts

import {Promise} from ''es6-promise''; const p: Promise<string> = new Promise ( (resolve: (str: string)=>void, reject: (str: string)=>void) => { const a: string = "hello from Promise"; resolve(a); } ); p.then((st) => { console.log(st); });

tsconfig.json

{ "compilerOptions": { "target": "es3", "module": "commonjs", "declaration": false, "noImplicitAny": false, "noLib": false }, "filesGlob": [ "./**/*.ts", "!./node_modules/**/*.ts" ], "files": [ "./main.ts", "./typings/es6-promise/es6-promise.d.ts" ] }

compileandrun.sh

#!/bin/sh npm install es6-promise tsd install es6-promise tsc node main.js