javascript - 在 get 函数中绑定(bind)一个 Promise return

标签 javascript typescript ionic2

<分区>

你好,我是 typeScript 和 Angular 的新手。 我需要在存储中获取一个值,storage.get 返回一个 promise ,所以我尝试:

getNomeUsuario():string{
    var that = this;
    this.storage.get('nomeUsuario').then(function(nome){
        that.nomeUsuario = nome;
    }.bind(this));
    return this.nomeUsuario;
}

问题是总是返回一个undefined。 我对箭头功能也有同样的看法。

getNomeUsuario():string{
    this.storage.get('nomeUsuario').then((nome)=>{
        this.nomeUsuario = nome;
    });
    return this.nomeUsuario;
}

如何返回 nome 值?

抱歉我的英语不好

最佳答案

因为 this.storage.get("nomeUsuario") 是异步的,getNomeUsuario() 方法不可能在不返回 Promise 的情况下返回它的值,所以你需要这样做:

getNomeUsuario(): Promise<string> {
  return this.storage.get("nomeUsuario");   
}

并在您调用 getNomeUsuario() 的地方处理 Promise。

ps:您也可以使用 Observable,但它会增加复杂性而没有任何好处。

关于javascript - 在 get 函数中绑定(bind)一个 Promise return,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45393956/

相关文章:

typescript - @types/dialogflow 包说 "dialogflow provides its own type definitions"但似乎不是

javascript - 使用 JavaScript 在 WebView 中加载 URL(按钮)

javascript - 如何连接我的 angular2 应用程序 javascript 文件

reactjs - Material-UI : Rating Component, 根据值改变颜色

html - ionic 2的垂直下拉导航

javascript - 如何将菜单的方向更改为rtl ionic2?

javascript - 对整数数组进行排序并显示输入值

javascript - 分配一个变量作为 jQuery ui 进度条的值

javascript - 如何在 vue cli 中使用 Moment.js

angular - 为什么我的 img 标签 src 属性的路径失败?