javascript - Angular 4 trenger å importere Promise
Jeg går bare gjennom Angular 4-opplæringene og har problemer med Promises:
Min tjeneste:
import { Injectable } from '@angular/core';
@Injectable()
export class ContentService {
constructor() { }
getProviders() : Promise<any>
{
return Promise.resolve(["a","b","c"]);
}
getProviderByName(name : string) : Array<String>
{
return ["a","b","c", name];
}
}
Ng kan ikke finne «Promise» siden det ikke er noen import for det. Men i veiledningen og flere eksempler finner jeg ingen imports for det.
Hva gikk jeg glipp av?? Hvordan kan jeg bruke disse løftene i Ng 4?
REDIGER: Her er mine prosjektkonfigurasjoner. Takk til alle. Jeg er sikker på at jeg kan få det fikset nå. Men jeg lurer fortsatt på hvordan jeg støtte på dette. Siden dette er en npm-installasjon som er 1 måned gammel..
tsconfig.json:
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2016",
"dom"
]
}
}
package.json:
"private": true,
"dependencies": {
"@angular/animations": "^4.0.0",
"@angular/common": "^4.0.0",
"@angular/compiler": "^4.0.0",
"@angular/core": "^4.0.0",
"@angular/forms": "^4.0.0",
"@angular/http": "^4.0.0",
"@angular/platform-browser": "^4.0.0",
"@angular/platform-browser-dynamic": "^4.0.0",
"@angular/router": "^4.0.0",
"bootstrap": "^3.3.7",
"core-js": "^2.4.1",
"font-awesome": "^4.7.0",
"jquery": "^3.2.1",
"rxjs": "^5.4.1",
"zone.js": "^0.8.14"
},
"devDependencies": {
"@angular/cli": "1.2.5",
"@angular/compiler-cli": "^4.0.0",
"@angular/language-service": "^4.0.0",
"@types/jasmine": "~2.5.53",
"@types/jasminewd2": "~2.0.2",
"@types/node": "~6.0.60",
"codelyzer": "~3.0.1",
"jasmine-core": "~2.6.2",
"jasmine-spec-reporter": "~4.1.0",
"karma": "~1.7.0",
"karma-chrome-launcher": "~2.1.1",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.1.2",
"ts-node": "~3.0.4",
"tslint": "~5.3.2",
"typescript": "~2.3.3"
}
Svar #1
Promises er ikke et bibliotek, de er en innebygd type, så du importerer dem ikke. Du må legge til Promises i bibliotekene dine:
tsconfig.json:
{
"compilerOptions": {
"lib": ["es2015", "dom"]
}
}
Husk å sjekke at du har en Promise-polyfill (som core-js), eller at du bare trenger å støtte nettlesere som allerede støtter Promises.
