gpt4 book ai didi

Javascript 异步返回 bool 到外部函数

转载 作者:行者123 更新时间:2023-12-02 18:20:01 24 4
gpt4 key购买 nike

我需要从函数 t 返回一个 bool 值,如下所示:

    function(t){   
//Do Something
return resultBool;
}

但是当我有一个确定结果的异步函数(CasperJS)时,我将如何使用回调来做到这一点?我尝试了类似的方法,但它似乎不起作用(我认为该函数只是返回 t.withFrame 的返回值,这始终是 true)。

function(t){    
function findElementInFrame(callback)
{
try{
t.withFrame("etravelframe", function(){
if(t.exists('#outFlight1------') == true){
callback(true);
}
else{
callback(false);
}
});
} catch(err){
//return false;
}
}


return findElementInFrame(function(bool){return bool;});

}

最佳答案

您的函数也需要是异步的。所以以太也接受回调,就像这样。

function (t, callback) {
try {
t.withFrame("etravelframe", function () {
if (t.exists('#outFlight1------') == true) {
// Callbacks usually take the error as first parameter.
// So by using null as first parameter, we notify the callback that here is no error.
// And that the result (if any) is available in the second argument.
callback(null, true);
} else {
callback(null, false);
}
});
} catch (err) {
// also use the callback, async functions should work consistently
callback(err);
}
}

或者创建一个deffered对象并返回 promise .
就像这样:

function (t) {
var deferred = jQuery.Deferred()
try {
t.withFrame("etravelframe", function () {
if (t.exists('#outFlight1------') == true) {
deferred.resolve(true);
} else {
deferred.resolve(false);
}
});
} catch (err) {
deferred.reject(err);
}
return deferred.promise();
}

关于Javascript 异步返回 bool 到外部函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18918667/

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