javascript - 如何从内部函数返回值到外部函数

标签 javascript callback

我正在尝试将 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/

相关文章:

javascript - Nodejs递归调用堆栈错误,但是代码应该没问题

javascript - 包括相对于网站根目录的JS和CSS文件

javascript - 在 symfony2 中安装 Javascript

c++ - 从 lib 文件回调方法的最简单/有效的方法

javascript - ClearTimeout 是否可以在超时到期但尚未获得执行机会的情况下清除超时?

javascript - 如何在图片较多的网页上实现平滑滚动?

javascript - mousemove 自动触发 IE 9

python - 使用 Python Paramiko exec_command 执行命令时未完成

javascript - Selenium 和异步 JavaScript 调用

c - 在c中为轮询添加回调函数