我有以下对Javascript承诺的调用:
deleteDatabase().then(function () {
doSomeStuff();
}, function (err) {
processError(err);
});
它工作正常,但它看起来很罗嗦。有没有办法有一个更简洁的方法来做到这一点?也许这样的事情(似乎不起作用):
deleteDatabase().then(doSomeStuff(), processError(err));
答案 0 :(得分:3)
您需要传递函数,而不是调用它们的结果:
deleteDatabase().then(doSomeStuff, processError);
当然,这会将deleteDatabase()
操作的结果传递给您的doSomeStuff
函数,因此如果您希望它没有参数,则需要像使用函数一样使用函数表达式。 / p>
答案 1 :(得分:1)
语法
有问题 deleteDatabase().then(doSomeStuff, processError);
如果你将()
放在函数名后面,它会立即调用它,省略括号,你传递对函数的引用,并要求稍后在promise中调用它。 / p>