我正在尝试将 pagenumber
的值从内部函数返回到另一个函数。但由于 javascript 的异步特性。我无法做到这一点,因为与内部函数相比,外部函数执行得更早。我正在尝试对其使用回调,但如果我在没有回调的情况下调用外部函数(从其他地方),它会产生错误。我的代码是,
'GrabNewResponse':function(credentials,width){
let pagenumber=0;
app.request.get(url,function(data){
let result=JSON.parse(data);
pagenumber=result.data.pagenumber;
if(result.success===true){
app.dialog.close();
}
});
return pagenumber;
},
最佳答案
如果没有回调、promise 或 async/await 关键字,就无法有效处理 Javascript 中的异步操作。
const request = () => new Promise((resolve, reject) =>
app.request.get(url, (response) => response.success
? resolve(response)
: reject(response)))
const o = {
async GrabNewResponse(credentials, width) {
const response = JSON.parse(await request(url))
const { data: { pagenumber = 0 } } = response
app.dialog.close()
return pagenumber
}
}
关于javascript - 如何从内部函数返回值到外部函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60213034/