回调中的回调应返回承诺

时间:2019-08-28 10:07:18

标签: javascript promise asynccallback

我想解决一个承诺(下面的代码)并将结果分配给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...
                        }
                    });
                }
            });

我如何修改代码以将诺言值转换为qrCode变量?

1 个答案:

答案 0 :(得分:0)

如果可以的话,将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仅在异步函数中起作用 查看用法here

我希望这会有所帮助。