我知道有很多问题与我的问题类似,但是我没有找到任何可以帮助我的好案例,
我从本机函数桥中获得了回调,这就是我在JS上使用它的方式:
getAllParameter((data)=>{
console.log(data) // data is Javascript Object
})
我已经尝试过这样做来获取data
的值:
getAllParameter((data)=>{
return new Promise((resolve)=> resolve(showToken(data.Token)))
})
async function showToken(token){
var res = await token
return res
}
var isiToken = showToken()
console.log("isiToken")
console.log(isiToken)
但结果是:
isiToken
{ _40: 0, _65: 0, _55: null, _72: null }
我不知道我的代码有什么问题,我想获取data
之外的getAllParameter
的值,我该怎么做呢?
我需要获取getAllParameter
的结果并自由使用它的原因是因为我在token
内有data
值,并且我需要在{ {1}}实例配置
所以我文件的完整代码应该是:
axios
答案 0 :(得分:2)
我不确定您的getAllParameter
定义,但是该方法应该在最后调用您的回调。希望做到这一点,下面的代码片段可以满足您的需求
(function() {
var data;
function getAllParam(callback) {
console.log("getAllParam");
callback("getAllParam");
}
getAllParam((data)=> {
this.data = data);
console.log(this.data);
});
})();
所以,我正在做的是
但这是我的代码的局限性:当getAllParam
是一个异步函数时,这不起作用。表示是否未按顺序调用回调。然后,您必须使用诺言。
编辑
app.js
function getAllParam(callback) {
console.log("getAllParam");
callback({Token: "getAllParam"});
}
var httpPromise = new Promise(resolve => {
getAllParam((data) => {
let token = data.Token;
console.log("Creating http from here using token");
let http = Axios.create({ bearer: token});
resolve(http);
})
});
export default httpPromise;
file_that_imports_app_js.js
import httpPromise from "./app.js";
async function init() {
let http = await httpPromise;
http.get("/", ...)
}
init();