gpt4 book ai didi

javascript - Bluebird 的 promise 和事件

转载 作者:行者123 更新时间:2023-12-03 04:21:37 25 4
gpt4 key购买 nike

我必须重构现有的 JavaScript 代码。这包括一个验证库和一些编辑器。我对 Promise 的工作还很陌生。旧代码是(以下简化):

$this.bind("validation.validation", function (event, params) {
var value,
errorsFound = [];
value = params.editor.getValue();
$.each(validators, function (i, validator) {
if (validator.validate(value)) {
errorsFound.push(validator.getErrMsg());
}
});
return errorsFound;
});

事件validation.validation在很多地方都会被触发。返回的数组包含错误消息。编辑器是全新的,不会使用 getValue() 返回值,而是返回 Promise。

$this.bind("validation.validation", function (event, params) {
var errorsFound = [];
params.editor.read().then(function (value) {
$.each(validators, function (i, validator) {
if (validator.validate(value)) {
errorsFound.push(validator.getErrMsg());
}
});
return errorsFound;
});
// return ??? what ???
});

如果可能的话,我希望避免完全重构此验证代码。但是事件处理程序如何返回异步的内容呢?这可能吗?

谢谢

最佳答案

您需要返回 Promise。然后调用代码需要理解 Promise 并在 Promise 解析后获取值。否则的话,能做的事情并不多。 ES6 中没有像 Async/Await 这样的东西。

关于javascript - Bluebird 的 promise 和事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43921453/

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