首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Promise.resolve的rxjs6中的等价物是什么

Promise.resolve的rxjs6中的等价物是什么
EN

Stack Overflow用户
提问于 2019-04-27 06:54:44
回答 1查看 152关注 0票数 0

我正在尝试在对websql api的异步调用之后进行解析。现在,我返回了一个承诺,它正在工作。然而,出于一些设计上的原因,我想使用rxjs6观察值。您知道如何使用rxjs实现相同的行为吗?

请考虑到tx.executeSqlwebsqlDatabase.transaction返回空值,而我没有权限访问这些函数的代码。

提前感谢

代码语言:javascript
复制
    return new Promise((resolve, reject) => {
        this.websqlDatabase.transaction(tx => {
          tx.executeSql(statement, params, (transaction, results) => {
            resolve(results);
          }, (transaction, error) => {
            reject(error);
          });
        });
    });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-27 07:06:49

创建一个新的observable,就像对promise所做的那样,然后调用observable.next(<var>)将结果通过管道传递给订阅的对象。确保您还调用了observable.complete()来通知observable可以关闭管道。

此代码是与上述代码等效的rxjs:

代码语言:javascript
复制
import { Observable } from 'rxjs';

const observable = new Observable(observer => {
    this.websqlDatabase.transaction(tx => {
        tx.executeSql(statement, params, (transaction, results) => {
            observable.next(results);
            observer.complete();
        }, (transaction, error) => {
            observable.error(error);
        });
     });
});

observable.subscribe(value => console.log(value));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55875801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档