以字符串而不是对象的形式获取存储项



使用下面的代码,我试图从离子存储键值对中检索网络链接。

loadpage(){
    let weblink = this.storage.get('link').then((val) => {
        JSON.stringify(val);
        console.log('Your link is', val);
    });
    this.http.get(weblink)
        .timeout(2000)
        .map(res => res.json())
        .subscribe(data => {
            this.mainContact = data;
            this.storage.set ("mainContact", JSON.stringify(data));
            },
            err => {
                this.connectionAlert();
            }
        );
}

我的错误是我试图字符串化"网络链接",但它仍然是一个对象。 如何将"网络链接"转换为字符串以与 http.get 一起使用

weblink这里是一个等待填充的Promise对象。鉴于异步性质,http 请求在评估之前对storage引擎创建的Promise对象执行它。承诺

如果您打算将weblink用于 http 请求,克服此问题的一种方法是将调用转移到.then内,您将在其中由Promise解析值。如果仍有疑问,请告诉我们。

loadpage() { //this part is in your loadpage
    this.storage.get('link').then((val) => {
        this.performWebRequest(val); //this 
        //or  performWebRequest(JSON.stringify(val)) depending on the value stored
        console.log('Your link is', val);
    });
}
performWebRequest(weblink) {
    this.http.get(weblink)
    .timeout(2000)
    .map(res => res.json())
    .subscribe(data => {
        this.mainContact = data;
        this.storage.set("mainContact", JSON.stringify(data));
    },
        err => {
        this.connectionAlert();
    });
}

相关内容

  • 没有找到相关文章

最新更新