如何使用async / await进行阻塞呼叫

时间:2019-04-02 14:57:48

标签: javascript node.js async-await

如何使此呼叫阻塞(例如,使用异步/等待)?

testMethod(message) {
    let signature;
    eccrypto.sign(this.privateKey, msg)
        .then(function (sig) {
            console.log("Signature in DER format:", sig);
            signature = sig;
        });
    return signature;
}

我希望testMethod返回signature,现在返回(当然)undefined!我一直在玩async/await并没有成功...

有什么帮助吗?

2 个答案:

答案 0 :(得分:1)

好的,您可以进行异步/等待。像这样

async testMethod(message) {
    let signature;
    signature = await eccrypto.sign(this.privateKey, msg)
        .then(function (sig) {
            console.log("Signature in DER format:", sig);
            return sig;
        });
    return signature;
}

但是不会被阻止。它的工作原理类似于同步代码,但不相同。请参阅details

答案 1 :(得分:0)

async testMethod(msg) {
    try {
      const signature = await eccrypto.sign(this.privateKey, msg)
      console.log('Signature in DER format:', signature);
      return signature;
    } catch (e) {
      console.error('Error generating signature', e.message);
    }
}