var Q = require("q");
function test(v){
var deferred = Q.defer()
if (v) {
console.log("success");
deferred.resolve();
}
else{
console.log("failed");
deferred.reject(new Error("failed"))
}
return deferred.promise;
}
var over = function(url){
console.log("hahaha")
console.log(url)
}
var failed = function(){
console.log("wuwuw")
}
test().then(over, failed)
test().then(over("localhost"), failed)
当test().then(over, failed)
时,函数结束不应该执行,程序可以很好,
我可以得到结果:
failed
wuwuw
但是当我为函数添加params时,函数将会执行。我会得到:
failed
hahaha
localhost
wuwuw
显然,我不希望函数超过执行,但我需要它在test()解析时得到params。
答案 0 :(得分:0)
但是当我为函数添加params时,函数结束将执行。
那是因为你正在调用它。您仍然需要将函数传递给then
:
test().then(function(testResult) {
over("localhost");
}, failed)