gpt4 book ai didi

javascript - 将 Promise 与事件相结合

转载 作者:行者123 更新时间:2023-11-30 09:44:33 25 4
gpt4 key购买 nike

一个Promise异步函数应该如何结合事件完成?

function f() {
return promisedFunction().then(event => {
let buf = '';
event.on('data', data => {
buf += data.toString()
});
event.on('end', () => {
return buf;
});
// how should I return buf here so that the promise would resolve fine?
});
}

最佳答案

这是您无法避免创建新 promise 的少数情况之一。您将在 then 中执行此操作并将其返回:

function f() {
return promisedFunction().then(event => {
return new Promise((resolve, reject) => {
let buf = '';
event.on('data', data => {
buf += data.toString()
});
event.on('end', () => {
resolve(buf);
});
event.on(/*...presumably there's an error condition?...*/, () => {
reject(/*..details of error..*/);
});
});
});
}

很容易在 90% 的时间里,您已经有了一个可以使用的 promise(最常见的 promise 错误之一是在您不需要时创建它们),但是您没有可以使用的 promise等待示例中的事件。

关于javascript - 将 Promise 与事件相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39447442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com