Angular 角度2-可观察到承诺失败
我正在努力把一个可观察的转变成一个承诺。我知道在任何可观察的Angular 角度2-可观察到承诺失败,angular,promise,rxjs,observable,angular2-http,Angular,Promise,Rxjs,Observable,Angular2 Http,我正在努力把一个可观察的转变成一个承诺。我知道在任何可观察的上都有toPromise()函数,但当我使用此函数时,它会返回我ZonedAwarePromise,并带有以下属性: \uuuuu zone\u symbol\u状态:null和\uuuu zone\u symbol\u值:数组[0] 而且,承诺的部分永远不会被解雇 具体情况 我想发送一个http api请求,该请求读取一个文件并将其内容返回到Promise中: public getData(fileName: string): Pro
上都有toPromise()
函数,但当我使用此函数时,它会返回我ZonedAwarePromise
,并带有以下属性:
\uuuuu zone\u symbol\u状态:null
和\uuuu zone\u symbol\u值:数组[0]
而且,承诺的部分永远不会被解雇
具体情况
我想发送一个http api请求,该请求读取一个文件并将其内容返回到Promise中:
public getData(fileName: string): Promise<any> {
return new Promise( (resolve, reject) => {
this.getHomeDirectory().then(homedir => {
const fullFileName = homedir + fileName;
const myApiRequest = "..." + fullFileName;
return this.http.get(myApiRequest)
.map(this.extractData)
.toPromise()
.catch(this.handleError);
});
}
}
我已经尝试过不同的变体,比如用resolve(…)
或Promise.resolve(…)
替换return
,现在我不知道如何正确地履行这个承诺,以便让部件正常工作
提前感谢您的帮助和想法 在新承诺
回调中,您必须解决:
public getData(fileName: string): Promise<any> {
return new Promise( (resolve, reject) => {
this.getHomeDirectory().then(homedir => {
const fullFileName = homedir + fileName;
const myApiRequest = "..." + fullFileName;
this.http.get(myApiRequest)
.map(this.extractData)
.catch(this.handleError)
.subsucribe(data => {
resolve(data )
});
});
}
}
公共getData(文件名:string):承诺{
返回新承诺((解决、拒绝)=>{
这个.getHomeDirectory().then(homedir=>{
const fullFileName=homedir+fileName;
const myApiRequest=“…”+完整文件名;
this.http.get(myapirest)
.map(此.extractData)
.接住(这个.把手错误)
.subsucribe(数据=>{
解析(数据)
});
});
}
}
在新承诺
回调中,您必须解决:
public getData(fileName: string): Promise<any> {
return new Promise( (resolve, reject) => {
this.getHomeDirectory().then(homedir => {
const fullFileName = homedir + fileName;
const myApiRequest = "..." + fullFileName;
this.http.get(myApiRequest)
.map(this.extractData)
.catch(this.handleError)
.subsucribe(data => {
resolve(data )
});
});
}
}
公共getData(文件名:string):承诺{
返回新承诺((解决、拒绝)=>{
这个.getHomeDirectory().then(homedir=>{
const fullFileName=homedir+fileName;
const myApiRequest=“…”+完整文件名;
this.http.get(myapirest)
.map(此.extractData)
.接住(这个.把手错误)
.subsucribe(数据=>{
解析(数据)
});
});
}
}
感谢您的回答,不幸的是,它似乎永远不会得到解决。我不知道为什么,但显然请求没有响应(甚至没有错误)任何想法?感谢您的回答,不幸的是,它似乎永远不会得到解决。我不知道为什么,但显然请求没有响应(甚至没有错误)有什么想法吗?您是否检查了网络选项卡以查看实际接收的内容?Array[0]
会向我建议您的请求/响应处理中出现了一些奇怪的情况:)您是否检查了网络选项卡以查看实际接收的内容?Array[0]
会告诉我,您的请求/响应处理过程中出现了一些奇怪的情况:)