首页 > 解决方案 > 回调中的回调应该返回一个承诺

问题描述

我想解决一个承诺(代码如下)并将结果分配给 qrCode 变量。

const qrCode: string = await ... ?; // some async method here...?
QRScanner.prepare((err: QRScannerError, status: QRScannerStatus) => {
                    QRScanner.scan((err: QRScannerError, value: string) => {
                           Promise.resolve(value); // return value to qrCode variable...
                        }
                    });
                }
            });

我如何修改该代码以从 promise 获取值到 qrCode 变量中?

标签: javascriptpromiseasynccallback

解决方案


如果可以,将 qrCode 变量从常量更改为全局变量,如下所示:

global qrCode; // and then....

function returned(){
 return QRScanner.prepare((err: QRScannerError, status:QRScannerStatus) => {
    QRScanner.scan((err:QRScannerError, value: string) => {
        return value;
        });
      }).promise();
}           

// assign value to qrCode
returned().then(function(value){
    qrCode = value;
});

// 如果定义了 qrCode,则对它做一些事情!例如

if(typeof qrCode !== 'undefined'){
// user qrCode here
}

// 请注意,await 仅在异步函数中有效,请参见此处的用法

我希望这有帮助..


推荐阅读