javascript - 回调中的回调应该返回一个承诺
问题描述
我想解决一个承诺(代码如下)并将结果分配给 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 变量中?
解决方案
如果可以,将 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 仅在异步函数中有效,请参见此处的用法
我希望这有帮助..