我有一段返回JQuery承诺的代码:
const jqProm = server.downloadAsync();
我希望在异步函数中使用它。我希望我可以创建类似C# TaskCompletionSource ,返回虚拟任务(Promise)以及作为 jqProm的处理程序解决/拒绝设置状态虚拟任务(承诺)。
怎么做?我只能找到 Promise 构造函数来接受解析器和拒绝器操作 - 但是没有像 PromiseCompletionSource 这样的东西。
答案 0 :(得分:2)
我今天亲自遇到了这个问题。 This应该做到这一点。
将jQuery承诺转换为Angular承诺:
var angularPromise = $q.when(jQueryPromise); // eg: $q.when($.get(...));
将jQuery承诺转换为本机或Bluebird承诺:
var promise = Promise.resolve(jQueryPromise); // eg: Promise.resolve($.get(..));
答案 1 :(得分:2)
jQuery promises是thenables,这意味着你可以将它们与原生承诺一起使用就好了。他们将隐含地获得Promise.resolve
d。所有你需要写的是
std::char_traits<std::byte>