Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 承诺在Android中,如何实现?_Javascript_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Javascript 承诺在Android中,如何实现?

Javascript 承诺在Android中,如何实现?,javascript,java,android,firebase,firebase-realtime-database,Javascript,Java,Android,Firebase,Firebase Realtime Database,在Android上实现相同行为的最简单方法是什么?我的意思是我想让我的线程(不是主线程)等待网络操作,然后一个接一个地执行它们。在javascript中,由于Promise,有一种实现这种行为的简单方法 exports.someFunction = functions.https.onRequest((req, res) => { const userId = req.query.user //long time ref.orderBy

在Android上实现相同行为的最简单方法是什么?我的意思是我想让我的线程(不是主线程)等待网络操作,然后一个接一个地执行它们。在javascript中,由于Promise,有一种实现这种行为的简单方法

   exports.someFunction = functions.https.onRequest((req, res) => {
        const userId = req.query.user
        //long time
        ref.orderByChild("parentId").equalTo(userId)
            .on("value", function (snapshot) {

                if (snapshot.val() === null) {
                    res.status(402)
                    return
                }
                snapshot.forEach(function (childSnapshot) {
                    const foo = childSnapshot.val();
                        getAccessToken().then(fistResponse => {

                            var json = JSON.parse(fistResponse);
                            accToken = json.access_token;

                            getMoreInformation(accToken, foo.bar).then(response => {
                                console.log(response)
                                if (isValid(response)) {
                                    res.status(200) 
                                } else {
                                    res.status(402)
                                }
                            })})})})});
目前我正在使用的界面,但我想学习其他方式


我发现android中有类似的东西,这可能就是我想要的。

在android上,你可以使用
任务
s来实现这一点。事实上,大多数Firebase Android SDK返回
任务
s,但不幸的是Firebase数据库API早于此,并使用自己的
ValueEventListener

Firebase的Doug Stevenson是
任务
s的大师,拥有:

  • 给一个
  • 写了一封信
  • 回答了一个问题,该问题将Firebase侦听器映射到任务,以便您可以使用
    任务。Whalll(…)
    (相当于
    承诺。all(…)
    等待所有项目加载

在Android上,您可以使用
任务
s。事实上,大多数Firebase Android SDK返回
任务
s,但不幸的是,Firebase数据库API早于此,并使用自己的
ValueEventListener

Firebase的Doug Stevenson是
任务
s的大师,拥有:

  • 给一个
  • 写了一封信
  • 回答了一个问题,该问题将Firebase侦听器映射到任务,以便您可以使用
    任务。Whalll(…)
    (相当于
    承诺。all(…)
    等待所有项目加载

java中没有等待操作,您需要使用一个接口。我已经提到过。还没有尝试过,但我会回来提供更多信息。java中没有等待操作,您需要使用一个接口。我已经提到过。还没有尝试过,但我会回来提供更多信息。