繁体   English   中英

客户端上的流星同步功能调用

[英]Meteor synchronous function call on the client

我正在使用Meteor和React,并且正在尝试从第三方javascript函数返回数据

该函数接受一个回调并返回一个值。 该功能需要几秒钟才能解决

此刻回调函数返回一个未定义的值,但几秒钟后,控制台日志将显示正确的数据

我当前的代码如下

// ON THE CLIENT
// callback function that returns a deviceId
const callback = function( data ) {

    // this callback fires with the correct data after a couple of seconds
    console.log("Callback ", data);

    return data;
};

// async function that calls third party function with callback
async function getDeviceId() {
    const res = await captureDeviceId(callback);
    return await res;
}

let response = getDeviceId().then( function(value) { 
    return value; 
});

console.log("res", response);

响应返回一个承诺,但没有解决

Return {[[PromiseStatus]]: "pending", [[PromiseValue]]: undefined}

在返回值之前,如何等待函数响应? 我尝试过流星wrapAsync,异步等待和Promises都没有成功。

任何帮助,将不胜感激

干杯,

getDeviceId在此处返回一个Promise (即使您在.then回调内部进行了返回)。 如果您想要ge值,请按照以下步骤操作:

var response;
getDeviceId().then( function(value) { 
    response =  value;
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM