热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

函数返回字符串angularjsfirebase-functiontoreturnstringangularjsfirebase

Istartedangularjs2daysago()Imcurrentlyaskingmyselfhowtocreateafunctionthatfetch

I started angularjs 2 days ago (...) I'm currently asking myself how to create a function that fetches my firebase data and depending on the child, it returns a string.

我2天前开始使用angularjs(...)我目前正在问自己如何创建一个获取我的firebase数据的函数,并根据子节点返回一个字符串。

Seems pretty simple when I say it, but harder to do...

我说的时候看起来很简单,但更难做到......

I could fetch the data one by one but the problem is that there are a total of 84 childs!!

我可以逐个获取数据,但问题是总共有84个孩子!

My Context The website retrieves from firebase if a person is working night, day or evening, for the 7 days of the week, for 4 weeks in a month (3x7x4 = 84). An example of one of my child is: Saturday1Night: true where "1" means week 1.

我的上下文如果一个人在一天中的7天工作,一天或晚上工作,一个月中的4周(3x7x4 = 84),网站将从firebase中检索。我孩子的一个例子是:Saturday1Night:true,其中“1”表示第1周。

What I tried

我尝试了什么

function getOneDay(currentUserId, key, query, text){
  firebase.database().ref().child('Users').child(currentUserId).child(key).once('value').then(function(snapshot) {
    /* query is "Saturday1Night" */
    if(datasnapshot.$value === null && datasnapshot.id === null) {
      /* not working */
      text = 'X';
    }else{
      /* value is "true", person is working */
      text = query;
    }

  })
  return text;
}

Now my real question is, how can I, like in java for example, create a function that returns a string? How can I display it in my $scope?

现在我真正的问题是,我怎么能像java一样创建一个返回字符串的函数?如何在$ scope中显示它?

html

HTML

{{s1n}}

angularjs

angularjs

$scope.s1n = text; //??
$scope.s1n = getOneDay(/*uid*/, /*key*/, "Saturday1Night", $scope.s1n) //??

Thank you in advance, have a good night/day!

提前谢谢,祝你有个美好的夜晚!

2 个解决方案

#1


0  

The Firebase Realtime Database APIs are asynchronous, meaning that once() returns immediately. Some time later, it will invoke your callback when the data becomes available. This means that your getOneDay function also returns immediately with an undefined value, because text doesn't have a value at the time it's evaluated.

Firebase实时数据库API是异步的,这意味着once()会立即返回。一段时间后,它将在数据可用时调用您的回调。这意味着您的getOneDay函数也会立即返回未定义的值,因为文本在评估时没有值。

You can't really make a function that returns a value from Realtime Database. You need to deal with its asynchronous APIs with the promises or callback they provide.

您无法真正创建一个从Realtime Database返回值的函数。您需要使用它们提供的promise或回调来处理其异步API。

Read here to learn more about why Firebase APIs are asynchronous.

阅读此处以了解有关Firebase API异步原因的更多信息。

#2


0  

You can try async-await:

你可以尝试async-await:

    async function getOneDay(currentUserId, key, query, text){

        var datasnapshot = await firebase.database().ref().child('Users').child(currentUserId).child(key).once('value');

        if(datasnapshot.$value === null && datasnapshot.id === null) {
          /* not working */
          text = 'X';
        }else{
          /* value is "true", person is working */
          text = query;
        }


      return text;
    }
    $scope.s1n = await getOneDay(/*uid*/, /*key*/, "Saturday1Night", $scope.s1n)

推荐阅读
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • 本文总结了在编写JS代码时,不同浏览器间的兼容性差异,并提供了相应的解决方法。其中包括阻止默认事件的代码示例和猎取兄弟节点的函数。这些方法可以帮助开发者在不同浏览器上实现一致的功能。 ... [详细]
  • 获取时间的函数js代码,js获取时区代码
    本文目录一览:1、js获取服务器时间(动态)2 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • Python基础知识:注释、输出和input交互
    本文介绍了Python基础知识,包括注释的使用、输出函数print的用法以及input函数的交互功能。其中涉及到字符串和整数的类型转换等内容。 ... [详细]
  • 工作经验谈之-让百度地图API调用数据库内容 及详解
    这段时间,所在项目中要用到的一个模块,就是让数据库中的内容在百度地图上展现出来,如经纬度。主要实现以下几点功能:1.读取数据库中的经纬度值在百度上标注出来。2.点击标注弹出对应信息。3 ... [详细]
  • javascript二叉树基本功能实现
    都是常用的功能。删除是最复杂的。。test ... [详细]
  • 渗透测试基础bypass绕过阻挡我们的WAF(下)
    渗透测试基础-bypass ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 开发笔记:图像识别基于主成分分析算法实现人脸二维码识别
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了图像识别基于主成分分析算法实现人脸二维码识别相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 我正在尝试使用scrapycrallsingle运行完美运行的scrapy蜘蛛,但我无法在python脚本中运行它.主要问题是从不执行SingleBlogSpider.parse方 ... [详细]
author-avatar
我的菜菜呀
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有