如何等待来自订阅的异步数据

时间:2018-09-09 16:58:31

标签: javascript angular typescript asynchronous

所以我试图等待订阅来自本地存储服务的数据,但是有时我从本地存储获取的数据比较晚,并且未定义.Uid

$table->foreign('permission_id', 'my_new_reference')->references('id')->on('permissions')
                ->onUpdate('cascade')->onDelete('cascade');

那么如何等待这些数据到来然后将其分配给uid变量?

1 个答案:

答案 0 :(得分:0)

您不能等待订阅方法。如果您还使用wait方法,而不是在第一次加载页面时,subscribe将自动调用,并且在未调用API之前,您始终会得到空值。

如果您的ID为undefined,而不是在订阅中使用if(data)

您的示例:

this.localStorage.getItem('castra').subscribe((data) => {
   if(data){    
   // This will call if they have some data. It call if data have 'null' or 'Undefined' value.
        this.uid = data.uid;
        console.log(data);
        this.getCastraProfile();
    }
});