简体   繁体   English

使用 async-await 时如何将 Resolve 回调传递给 Promise?

[英]How to pass Resolve callback into a Promise when using async-await?

Let's say I have a function that returns a Promise :假设我有一个返回Promise的函数:

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

And let's say I have a callback function for resolve callback:假设我有一个用于resolve回调的回调函数:

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

When I'm simply using promises without async-await I can pass this callback into a promise very easily, like so:当我只使用没有async-await的 promise 时,我可以很容易地将此​​回调传递给 promise,如下所示:

logData().then(resolveCallback);

In this example when my promise is executing it will reach resolve('data');在这个例子中,当我的 promise 正在执行时,它会到达resolve('data'); line and resolveCallback will be executed because resolve = resolveCallback line 和resolveCallback将被执行,因为resolve = resolveCallback

Now when I'm using async-await approach, is it possible to pass resolveCallback into the promise, somehow?现在,当我使用async-await方法时,是否可以以某种方式将resolveCallback传递到 promise 中?

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

Same as与...一样

logData().then(resolveCallback)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM