gpt4 book ai didi

node.js - q.js : can I stop a function from executing until a promise is fulfilled?

转载 作者:搜寻专家 更新时间:2023-10-31 22:32:27 25 4
gpt4 key购买 nike

举个例子:

if(foo) {
async_call(); // returns a Q promise object
}
// do this immediately if foo was false
// or after the promise is resolved if foo was true

这可能吗?

我能看到的替代方案要么总是调用异步函数,抛出“foo”检查,这是不太理想的,但可以在代码中工作;或者只是假设“foo”为真并在它为假时抛出错误(要求调用者在调用异步函数本身后重试),由于显而易见的原因,这更不理想。

编辑:作为一种临时解决方法,我发现它可行,但并不理想:

var promise = foo ? Q.defer().resolve(foo).promise : async_call();
promise.then(function(foo) {
// this is done after the async call if it was necessary or immediately if not
});

最佳答案

Q.when() 可用于当您不知道某个值是否为 promise 时。

Q.when(foo || async_call()).then(function (foo) {
//...
});

关于node.js - q.js : can I stop a function from executing until a promise is fulfilled?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15656097/

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