所以我有2个Promise函数。当第一个功能出现错误时,我希望它显示错误消息。当完成或失败时,我希望他们执行finally捕获的所有功能,但是由于某种原因,它无法正常工作。
我的代码如下所示:

// If our garment has a logo
shared.logoExists(garment, model).then(function () {

    // Save our panel
    return shared.save(model);

// If there was an error
}, function () {

    // Display an error message
    toastr.warning(localization.resource.logoPlacementError.message);

// Always close the library
}).finally(function () {

    // Reset our attachments
    self.resetAttachment();

    // Hide our library
    self.closeLibrary();
});


因此,基本上我想实现的是如果第一个功能失败,它将显示并出错。
当第二个函数失败时,它不会执行任何操作。
但是,如果成功或失败,它将始终关闭该库。

有谁知道我能做到这一点吗?

最佳答案

关闭then函数后,必须使用.catch:

// If our garment has a logo
shared.logoExists(garment, model).then(function () {

    // Save our panel
    return shared.save(model);

// If there was an error
}).catch(function () {

    // Display an error message
    toastr.warning(localization.resource.logoPlacementError.message);

// Always close the library
}).finally(function () {

    // Reset our attachments
    self.resetAttachment();

    // Hide our library
    self.closeLibrary();
});

10-05 21:59