我想在Typescript中将函数中的值传递给外部。
我尝试了很多方法,例如要声明全局变量,返回函数值等的东西,但它不起作用。
我想也许我的语法错了。你能帮忙吗?代码如下,供参考。 非常感谢。
this.platform.ready().then(() => {
FCMPlugin.getToken(
function (token) {
console.log(token);
},
function (err) {
console.log('error retrieving token: ' + err);
}
);
console.log(token); //I would to pass the token value to here
}
答案 0 :(得分:0)
如何定义外部变量?
像这样:
this.platform.ready().then(() => {
var myToken;
FCMPlugin.getToken(
function (token) {
console.log(token);
myToken= token;
},
function (err) {
console.log('error retrieving token: ' + err);
}
);
console.log(myToken); //I would to pass the token value to here
}
如果getToken是异步的,你可以触发事件或进行回调
this.platform.ready().then(() => {
FCMPlugin.getToken(
function (token) {
console.log(token);
myCallback(token);
$('html').trigger('tokenReady',token);
},
function (err) {
console.log('error retrieving token: ' + err);
}
);
function myCallback(myToken){
console.log(myToken);
}
}
$('html').on('tokenReady',function(e,token){
myCallback(token);
});
第三版(仅限回调):
this.platform.ready().then(() => {
FCMPlugin.getToken(
function (token) {
console.log(token);
myCallback(token);
},
function (err) {
console.log('error retrieving token: ' + err);
}
);
function myCallback(myToken){
console.log(myToken);
}
}
答案 1 :(得分:0)
FCMPlugin.getToken
异步执行,因此在您点击获取令牌回调之前,您将没有令牌值。
此外,当它以异步方式执行时,您的第二个console.log语句将在回调之前触发,因此您将无法获得令牌值,因为此时尚未返回该值。
简单的答案是移动代码来处理成功回调中返回的令牌,其中有第一个console.log语句。