从Typescript中的函数传递变量
我想在Typescript中将函数的值传递给外部。从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
}
怎么样定义一个外部变量?
像这样:
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);
}
}
如果'getToken'是异步的,这将不起作用,因为'console.log'语句将在分配给'myToken'之前运行。 –
那么你应该使用回调或触发一个事件(我编辑) – Francesco
非常感谢!但似乎有一些打字错误。 [ts]找不到$ [ts]找不到名字'myCallBack' –
FCMPlugin.getToken
异步执行,所以你会我在令牌回调之前没有令牌值。
此外,因为它异步执行,所以您的第二个console.log语句将在回调之前触发,因此您无法获取令牌值,因为它尚未在该点返回。
简单的答案是移动你的代码来处理你的第一个console.log语句在你的成功回调中返回的令牌。
有没有办法移动成功回调内的代码?在我看来,它甚至可能在获得令牌之前运行你的代码。 –
可能重复的[如何返回来自异步调用的响应?](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) –