使用异步等待时如何将Resolve回调传递给Promise?

时间:2019-07-31 17:06:14

标签: javascript asynchronous promise async-await es6-promise

假设我有一个返回Promise的函数:

let logData = function () {
    return new Promise(function (resolve, reject) {
        // doing some stuff
        resolve('data');
    });
};

假设我有一个resolve回调的回调函数:

let resolveCallback = function (data) {
    console.log(`doing some stuff with ${data}`);
};

当我只使用没有async-await的promise时,我可以很容易地将此​​回调传递给promise,就像这样:

logData().then(resolveCallback);

在此示例中,当我执行诺言时,它将到达resolve('data');行,并且resolveCallback将被执行,因为resolve = resolveCallback

现在,当我使用async-await方法时,是否有可能以某种方式将resolveCallback传递到Promise中?

async function logDataAsync() {
    // IS THERE NO WAY TO PASS resolveCallback as resolve PARAMETER HERE???
    await logData();
} 

1 个答案:

答案 0 :(得分:0)

async function logDataAsync() {
// IS THERE NO WAY TO PASS resolveCallback as resolve PARAMETER HERE???
    const res = await logData();
    resolveCallback(res);
}

相同
logData().then(resolveCallback)