如何将Promise值传递给一些独立的函数?- 脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将Promise值传递给一些独立的函数?- 脚本相关的知识,希望对你有一定的参考价值。

最近我在玩Firebase和基于它的一个简单的web应用项目。我被一件简单的事情卡住了......主要是,我想从实时数据库中获取我实际做的数据,然后把它传递给变量--这是我的问题。我在这里看到了一些讨论(包括这个--)。JavaScript - Firebase值到全局变量)但不幸的是,我仍然无法做到这一点。

我只是用ESP32收集经纬度,然后把它发送到firebase,然后我想用它在我的网页上显示地图。我有一个地图,但是我不能把坐标传给它:(

我正在使用的典范代码。

var longitude = firebase.database().ref().child('Polozenie_urzadzenia');
longitude.once("value", snap => {
    var dlugosc = snap.child("Dlugosc").val();
    console.log(dlugosc);
});

function initMap() {
    var position = {lat: 52.2375259, lng: 21.1394577}; <- I want to pass longitude and latitude here 
    var map = new google.maps.Map(
        document.getElementById('map'), {zoom: 10, center: position});
    var marker = new google.maps.Marker({position: position, map: map});
}

非常感谢!

更新!!!!!

我已经成功实现了这样的东西。

enter image description here

用这段代码

function getLongitude(longitude) {
    longitude = firebase.database().ref("Polozenie_urzadzenia/Dlugosc");
    return longitude.once('value').then(function(snapshot){
        var dlugosc = snapshot.val();
        return dlugosc;
    })

现在,如何把它传给我的 "lng"?

function initMap() {
    var position = {lat: 52.2375259, lng: 21.1394577};
    var map = new google.maps.Map(
        document.getElementById('map'), {zoom: 10, center: position});
    var marker = new google.maps.Marker({position: position, map: map});
}

先谢谢你了!

答案

根据我的理解,你是想把Firebase的数据存储在你的 "火库 "中。dlugosc 变量。因为你在firebase查询的回调处理程序中声明了它。

也许你可以尝试在你的 dlugosc 变量,所以你可以在你的 initMap() 这样的功能。

var dlugosc;
var longitude = firebase.database().ref().child('Polozenie_urzadzenia');
longitude.once("value", snap => {
   dlugosc = snap.child("Dlugosc").val();
   console.log(dlugosc);
});

function initMap() {
    var position = { lat: dlugosc.lat, lng: dlugosc.lng }; <- I want to pass longitude and latitude here 
    var map = new google.maps.Map(
        document.getElementById('map'), {zoom: 10, center: position});
    var marker = new google.maps.Marker({position: position, map: map});
}

对不起,我不知道这怎么可能,我错了,我编辑了,不是我的帖子O. O.

以上是关于如何将Promise值传递给一些独立的函数?- 脚本的主要内容,如果未能解决你的问题,请参考以下文章

Javascript:如何将其他变量传递给promise .catch函数

函数与方法

Promise.then方法的返回值问题

如何将 javascript 函数的值传递给 Django 视图?

ES6 Promise

将定义传递给函数